Questo è il mio tentativo di tagliare le questioni estranee sollevate "Why don’t my system calls work in the Perl program I wrap with pp?" Ho creato un semplice script Perl su un sistema Linux:Dove apre pp (PAR) i file add (-a)?
new-net:~/scripts # cat ls_test.pl
@ls_out = `ls -l`;
map { print "$_\n" } @ls_out;
$out = `sh out_test.sh`;
print "$out\n";
Questo script richiama un semplice file di shell:
new-net:~/scripts # cat out_test.sh
echo "I'm here"
ho usato pp per confezionare lo script Perl con lo script di shell in ls_test:
new-net:~/test # unzip -l ls_test Archive: ls_test Length Date Time Name -------- ---- ---- ---- 0 07-13-09 16:41 script/ 436 07-13-09 16:41 MANIFEST 214 07-13-09 16:41 META.yml 93 07-13-09 16:41 script/ls_test.pl 538 07-13-09 16:41 script/main.pl 16 07-13-09 16:20 out_test.sh -------- ------- 1297 6 files
Se eseguo il file compresso in un altro modo e directory mpty, lo script di shell non è stato trovato:
new-net:~/test # ./ls_test total 3391 -rwxr-xr-x 1 root root 3466177 Jul 13 16:41 ls_test sh: out_test.sh: No such file or directory
Se copio lo script di shell nella directory, lo script imballato viene eseguito come previsto:
new-net:~/test # ./ls_test
total 3395 -rwxr-xr-x 1 root root 3466177 Jul 13 16:41 ls_test -rw-r--r-- 1 root root 16 Jul 13 16:20 out_test.sh I'm here
Allora, da dove viene uno script ricco pp
aspettano trovare un file incluso? E come deve essere configurata una chiamata al file incluso nello script Perl originale?
da PAR perldoc; run Il nome di uno script da eseguire nel par. Esce quando finito. Significa che qualsiasi chiamata a un file aggiunto esce dallo script impacchettato? Il problema che stavo originariamente cercando di risolvere è uno script POE/TK che richiama vari file esterni dai comandi del widget. – jpolache