Possono cons trovare eseguibili nel mio percorso?
Domanda
Sto cercando di eseguire il debug di uno script cons
, e il problema che sto avendo è che un eseguibile nella mia $PATH
non sembra essere situato. In breve:? Può cons
trovare eseguibili nel mio percorso
Questo potrebbe sembrare una domanda stupida, dal momento che la FAQ dice
Contro non passa l'ambiente dell'utente al bambino processi che si biforca per costruire il software. Tutto ciò che avete bisogno o desidera passare dall'ambiente dell'utente deve essere fatto in modo esplicito.
Non è chiaro per me, tuttavia, che cons
non dovrebbe essere in grado di vedere la mia $PATH
(quanto sopra è formulata in modo tale che non mi aspetto processi figli di avere accesso a qualsiasi delle variabili d'ambiente). Nell'esecuzione del Construct
, $PATH
restituisce svuotare ma $ENV{PATH}
contiene il percorso.
Non aiuta che io non conosco né cons
Perl
, quindi non so davvero quello che sto facendo, né dove iniziare la ricerca di ciò che è la causa del problema :)
Per quello che vale, lo script che non funziona per me, ma funziona per l'autore originale dello script, si trova qui .
Soluzione
Per quello che vale, la linea guida nelle FAQ è corretta in quanto qualcosa come questo risolverà il problema:
# A standard construction environment.
$env = new cons(
ENV => { PATH => $ENV{PATH} }
);
che possono poi essere seguita da, per esempio,
Command $env 'foo', qq(echo =`which tex`=);
per eseguire / installare / costruire / qualunque cosa si sta facendo con lo script cons
.