Next Previous Contents

1. El primer programa


#!/usr/bin/perl -w

print "¡Hola, mundo!\n";

He aquí nuestro primer programa en Perl. Vamos a analizar todas las líneas, una a una. Es decir, las dos.

1.1 Ubicación del intérprete

La primera línea especifica la localización del intérprete, el ejecutable "perl":


#!/usr/bin/perl -w

El parámetro que le pasamos, -w, indica al intérprete que genere advertencias ("warnings") sobre variables sin inicializar, subrutinas redefinidas, variables que se usan una sola vez, etc. Es un parámetro muy recomendable, tanto al empezar como cuando se lleva ya un tiempo programando en Perl; esto es tan cierto, que en la página man de perl se cita como un "bug" el hecho de que este parámetro no sea obligatorio.

Esta línea realmente no es necesaria. Podríamos ejecutar el programa, suponiendo que lo hemos grabado en un fichero "hola.pl", de esta forma:


perl -w hola.pl

Sin embargo, indicando en la primera línea el intérprete podemos ejecutar el programa como si se tratara de cualquier ejecutable. Evidentemente, primero debemos darle permisos de ejecución:


chmod +x hola.pl

Y ahora ya podríamos ejecutarlo tranquilamente:


./hola.pl

1.2 Print

Esta es una de las instrucciones más usadas en Perl, y en cualquier lenguaje en general. Su función es evidente: imprime lo que se le indica por la salida estándar, si no le indicamos otra cosa (lo que no haremos hasta más adelante). En nuestro programa tenemos:


print "¡Hola, mundo!\n";

En esta línea tan simple ya se pueden observar un par de características importantes de Perl.

La primera, que a diferencia de otros lenguajes "C-like" en Perl se pueden especificar los parámetros de una función a continuación de la misma, sin paréntesis ni ningún otro tipo de caracter "agrupador". Esto recuerda a los viejos tiempos de BASIC.

La segunda, que la primera no es del todo cierta. En realidad, podríamos poner esta línea de ejemplo también de este modo:


print("¡Hola, mundo!\n");

El funcionamiento sería exactamente el mismo. Esto es así porque en Perl, como dice uno de sus lemas, "Siempre hay varias formas de hacerlo". La sintaxis de Perl deriva principalmente de C, y por eso permite una sintaxis como la segunda. Pero como también deriva de los lenguajes de "scripting" tradicionales, en los que la primera sintaxis es habitual, cualquiera de las dos es igualmente válida. Esto hace que sea muy fácil de aprender para cualquiera que venga de uno de los dos entornos, aunque también hace que el código Perl pueda llegar a niveles de ofuscación bastante molestos.

La tercera característica es el punto y coma que finaliza la línea. Como en C, el punto y coma se usa para separar instrucciones. Podemos poner varias por línea y separarlas por puntos y comas, como en C y sus derivados.

Después de esto, sólo queda pararse a mirar un momento lo que le pasamos a la función print:


"¡Hola, mundo!\n"

Para los que hayan programado en C, esta cadena no es ningún misterio: la parte de "¡Hola, mundo!" es el mensaje, y "\n" es un retorno de carro. La sintaxis es la misma que en la función de C printf. Pero también de esta cosa tan sencilla podemos aprender algo.

La cadena está encerrada en dobles comillas, al estilo C de toda la vida; pero en Perl, también hubiera podido estar encerrada entre comillas sencillas:


print '¡Hola, mundo!\n';

¿Cuál es la diferencia? Muy sencillo: dentro de comillas dobles, las variables que haya dentro de la cadena se expanden, al igual que los caracteres especiales (como "\n"); dentro de comillas sencillas, no hay expansión. Si ejecutáramos la primera versión del programa, con comillas dobles, el resultado sería algo parecido a esto:


$ ./hola.pl
¡Hola, mundo!
$

Mientras que si ejecutamos la segunda, con comillas sencillas:


$ ./hola.pl
¡Hola, mundo!\n$

En el segundo caso, el carácter "\n" no se ha expandido, y por lo tanto no se ha insertado al final de la línea un retorno de carro; por eso nos aparece tal cual lo hemos puesto ("\n"), y el "prompt" del shell aparece directamente después.


Next Previous Contents