En muchos scripts de Perl (especialmente en famosos distribuciones CPAN) Encuentro el siguiente fragmento de código:¿Qué significa "no ejecutar bajo algún shell" en los scripts de Perl?
eval 'exec /usr/bin/perl -w -S $0 ${1+"[email protected]"}'
if 0; # not running under some shell
Me preguntaba para qué sirve?
Gracias.
¡Muchas gracias! ¡Qué ingenioso realmente! –
Me pregunto si todavía hay algún sistema que valga la pena preocuparse que no sea compatible con [shebangs] (http://en.wikipedia.org/wiki/Shebang_ (Unix)). –
Tengo scripts que hacen esto para que se ejecuten bajo Solaris Y Linux. El shebang apunta a un Perl de Solaris, pero en Linux el script se ejecuta como shell, y la línea eval ejecuta un perl de Linux. Los archivos perls se instalan en ubicaciones impares, pero los archivos/directorios se comparten entre sistemas a través de NFS. – runrig