CID escribiste:¿Qué significa esto?
#!/usr/local/bin/perl
¿Es un comentario? ¿una directiva?
¿En Windows sirve para algo? ¿En Linux para qué sirve?
En definitiva, ¿¿qué es??
Es un truco...
Resulta que en la mayoría de los programas en
script usan el carácter '#' como inicio de comentario, así que lo que estamos viendo es en realidad... un comentario de un programa.
PERO aprovechando que es un comentario, a alguien se le ocurrió la maravillosa idea de colocar allí el camino al programa que interpretará el resto del código. Quiero decir que puso al lado del '#' un carácter '!', y siendo estos dos caracteres los dos primeros del fichero, sólo tenemos que indicar al sistema operativo que, cuando el usuario desee ejecutar este fichero, lo primero que tiene que hacer es mirar si los dos primeros bytes son el 0x23 y el 0x21 (esto en informática se le llama
número mágico). Si son esos, entonces en vez de ejecutarlo como un binario más, lo que hará el
shell del sistema será ejecutar el intérprete que sigue a '#!', pasándole como primer argumento nuestro programa.
Un ejemplo. Si tenemos este código:
print "Hola CID!!!\n"; y lo guardamos como
cid.pl, para ejecutarle necesitamos escribir
/usr/bin/perl cid.pl O podemos escribirlo de esta otra manera:
#!/usr/bin/perl
print "Hola CID!!!\n";Luego darle al fichero los permisos de ejecución como si fuera un binario más (
chmod 755 cid.pl) y ejecutarlo directamente:
cid.plA la combinación '
#!' se le llama
Shebang.
En Windows, a pesar de que tiene también el sistema de 'número mágico' para identificar de qué tipo es el programa que estamos intentando ejecutar, no suele tener asociado nada cuando ve '
#!', por lo que tenemos que usar otro truco, que es el de asociar la extensión de los archivos (.pl) a la operación abrir (Open) con el ejecutable
perl.exe. Todo esto lo suelen hacer las distribuciones de Perl en cuanto las instalamos en Windows, como el de ActiveState, así que nosotros ni nos damos cuenta de ese paso.
En caso de que tengamos que hacer estas operaciones manualmente, sólo hay que acordarse de:
- Ir a la variable de entorno del sistema PATH y agregarle el camino al lugar donde reside el perl.exe. Seguramente también tendremos que definir la variable PERL5LIB para que apunte al subdirectorio C:\Perl\lib o algo parecido, para que el Perl pueda encontrar las librerías básicas para funcionar
- Pulsar con doble clic en un archivo .pl. Si el Windows no sabe qué hacer, nos preguntará con qué programa hay que abrirlo. En ese momento tenemos que decidir si queremos que lo ejecute directamente con Perl (Open perl.exe) o con otro programa, como puede ser un editor de texto (Open edit.exe). Más tarde, en opciones de Carpeta, pestaña Ver, podremos cambiar estas opciones y poner otras (en caso de doble clic, ejecutarlo, pero si se pulsa con el botón derecho, ofrecer la opción de editarlo con otro programa).
En definitiva, en Windows podríamos pasar de él, PERO es SIEMPRE recomendable ponerlo, porque... tus programas no siempre van a estar en Windows...
Más información sobre '#!' en Windows.