codice nome del filedifferenza tra ./test.pl e perl test.pl
#!/usr/bin/perl -I/root/Lib/
use Data::Dumper;
print Dumper \@INC;
Il codice di cui sopra è test.pl e il permesso è 755.
Quando sto facendo funzionare il programma utilizzando/usr/bin/perl test.pl l'output di @INC contiene "/ root/Lib" alla fine. È come premere su @INC.
/usr/bin/perl test.pl uscita
$VAR1 = [
'/etc/perl',
'/usr/local/lib/perl/5.10.0',
'/usr/local/share/perl/5.10.0',
'/usr/lib/perl5',
'/usr/share/perl5',
'/usr/lib/perl/5.10',
'/usr/share/perl/5.10',
'/usr/local/lib/site_perl',
'.',
'/root/Lib/'
];
Ma quando sto facendo funzionare il programma utilizzando ./test.pl l'uscita del @INC contenere "/ root/lib /" contengono primo così come anche la fine. È come unshift e push.
uscita ./test.pl
$VAR1 = [
'/root/Lib/',
'/etc/perl',
'/usr/local/lib/perl/5.10.0',
'/usr/local/share/perl/5.10.0',
'/usr/lib/perl5',
'/usr/share/perl5',
'/usr/lib/perl/5.10',
'/usr/share/perl/5.10',
'/usr/local/lib/site_perl',
'.',
'/root/Lib/'
];
quindi voglio sapere che cosa è la differenza tra ./test.pl e/usr/bin/perl test.pl?
+1 è un comportamento sorprendente, investigando ... – msw
se hai fatto perl -I/root/Lib test.pl sarebbe lo stesso. Lo shebang sulla linea uno è usato come comando quando lo fai ./test.pl – KeepCalmAndCarryOn
Curioso e curioso: se 'L' è'/root/lib' ottengo l'output di 'L, L, ...' per lo shebang esecuzione e 'L, ...' per l'invocazione/usr/bin/perl. Quale sistema operativo e (se applicabile) pacchetto Perl stai usando? – msw