Tengo un simple script en Perl que imprime @INC
como los siguientes:Perl, ¿Por qué @INC es diferente?
#!/usr/bin/perl
print $_, "\n" for @INC;
que ejecutar el script de 2 maneras diferentes con ./test.pl
y perl test.pl
, la salida como la siguiente:
[[email protected]~/bin]$ ./test.pl
/Library/Perl/5.12/darwin-thread-multi-2level
/Library/Perl/5.12
/Network/Library/Perl/5.12/darwin-thread-multi-2level
/Network/Library/Perl/5.12
/Library/Perl/Updates/5.12.3
/System/Library/Perl/5.12/darwin-thread-multi-2level
/System/Library/Perl/5.12
/System/Library/Perl/Extras/5.12/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.12
.
[[email protected]~/bin]$ perl test.pl
/opt/local/lib/perl5/site_perl/5.12.3/darwin-multi-2level
/opt/local/lib/perl5/site_perl/5.12.3
/opt/local/lib/perl5/vendor_perl/5.12.3/darwin-multi-2level
/opt/local/lib/perl5/vendor_perl/5.12.3
/opt/local/lib/perl5/5.12.3/darwin-multi-2level
/opt/local/lib/perl5/5.12.3
/opt/local/lib/perl5/site_perl
/opt/local/lib/perl5/vendor_perl
.
Mi La pregunta es: ¿qué hay detrás de las escenas para ejecutar una secuencia de comandos perl con ./script.pl
y perl script.pl
? ¿Qué hace que la secuencia de comandos salga diferente @INC
?
Diferentes binarios de 'perl'? ¿Qué dice 'which perl'? – cHao
'which perl' dice'/opt/local/bin/perl', pero utilicé '/ usr/bin/perl' para el shabang. todos están en lo cierto, gracias ... pero podría haberme perdido eso ... – neevek
lección Unix # 1 (que doy a todos los novatos en el equipo). NUNCA SIEMPRE confíe en el directorio actual o en la RUTA. SIEMPRE use una ruta explícita completamente calificada. – DVK