Para iniciar diremos que una variable
es un espacio donde puede almacenarse información para utilizara durante la
ejecución de nuestro programa.

A diferencia de muchos lenguajes de programación, Perl es algo desordenado.
Para utilizar una variable basta con definirla en cualquier parte de nuestro
programa y no hay necesidad de declarar si es numérica, alfanumérica, etc.

Se pueden utilizar 3 tipos de variables que son: scalars
(escalares), arrays (conjuntos) y hashes
(conjuntos definidos).

Las variables scalars (escalares)
almacenan información de un solo valor. Para definirlas utilizamos el
signo de dólar ($) antes del nombre de la variable
que puede ser $variable1, $mw, $1, etc..

Estas variables se utilizan de la siguiente forma:

$variable1 = "Hola amigo";
      $mw = 1999;

Para definir el valor que contine una
variable se utilizan las comillas (” “), incluyendo
entre comillas los contenidos alfanuméricos y los de valor numérico sin comillas.
El valor de una variable puede cambiar según lo requiera el programa y podemos
hacer que una variable numérica se convierta en una alfanumérica sin problema.

$ejemplo = 1999;
      $ejemplo = "Sabías que estamos en el año $ejemplo";

Para explicar mejor el funcionamiento
de un las variables escalares tenemos el siguiente ejemplo: 

1. #!/usr/bin/perl

      2. $Titulo = "Mi primer ejemplo de variables";

      3. $Numero = 78;

      4. print "Content-type:text/html\n\n";


      5. print "<HTML>\n";

      6. print "<HEAD><TITLE>$Titulo</TITLE></HEAD>\n";

      7. print "<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n"; 
      


      8. print "<H1>$Titulo</H1>\n";

      9. print "<H2>Mi número de la suerte es el $Numero</H2>\n";


      10. print "</BODY></HTML>\n";

Como
pudimos apreciar, al correr este programa, las variables que definimos al principio
son incrustadas en el código que se imprime. Además, las variables pueden ser
utilizadas todas las veces que lo necesitemos.

Continuando con el segundo tipo de variables, nos encontramos con las arrays (conjuntos) que como lo indica su nombre,
sirven para almacenar un conjunto de valores, a diferencia de las scalars
que almacenan un solo valor. Para definir este tipo de variables se utiliza
el signo de arroba (@) antes del nombre de la variable
y se utilizan de la siguiente manera:

@dias = ("lunes","martes","miercoles","jueves","viernes","sabado","domingo");

Una vez definida la variable de tipo de
tipo array, para utilizar los valores se utilizan
variables de tipo scalar, ya que serán manejados
individualmente. Asi, para seleccionar el segundo valor de @dias
utilizamos el comando $dias[1]. Hay que tomar en
cuanta que la númeración inicia desde 0, por lo que para utilizar el primer
valor utilizariamos $dias[0]. A continuación ejemplificaremos
el uso de estas variables:  

1. #!/usr/bin/perl

      2. $Titulo = "Mi segundo ejemplo de variables";

      3. @habiles = ("lunes","martes","miercoles","jueves","viernes");


      4. print "Content-type:text/html\n\n";

      5. print "<HTML><HEAD><TITLE>$Titulo</TITLE></HEAD>\n";

      6. print "<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n"; 
      


      7. print "<H3>Mis días habiles son:</H3>\n";

      8. print "<H4>$habiles[0],</H4>\n";


      9. print "<H4>$habiles[1],</H4>\n";

      10. print "<H4>$habiles[2],</H4>\n";

      11. print "<H4>$habiles[3],</H4>\n";


      12. print "<H4>$habiles[4],</H4>\n";

      13. print "</BODY></HTML>\n";

y mejor aún, podemos simplificar este proceso
con el comando foreach que por medio de un ciclo,
nos facilita el trabajo, quedando el código así:   

1. #!/usr/bin/perl

      2. $Titulo = "Mi segundo ejemplo de variables";


      3. @habiles = ("lunes","martes","miercoles","jueves","viernes");

      4. print "Content-type:text/html\n\n";


      5. print "<HTML><HEAD><TITLE>$Titulo</TITLE></HEAD>\n";

      6. print "<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n"; 
      


      7. print "<H3>Mis días habiles son:</H3>\n";

      8. foreach $variable (@habiles) {

      9. print "<H4>$variable,</H4>\n";


      10. }

      11. print "</BODY></HTML>\n";

Como apreciamos, el comando foreach repite el proceso que se le indica
entre las { }, lo cual es muy efectivo al manejar
procesos que tienen una secuencia.

Como las arrays son conjuntos de elementos, Perl tiene algunos comandos que
nos permite manipular los valores que estos tienen:

@meses = (“enero”,”febrero”,”marzo”);

sort(@meses); Ordena los valores
alfabéticamente

reverse(@meses); Invierte los valores

$ultimo = pop(@meses); Muestra el último valor (marzo)

$primero = shift(@meses); Muestra el primer valor (enero)

push(@meses,”abril”); Incluye el valor (abril) al final de el array
@meses

$#meses Muestra el tamaño del array @meses

Finalizando con los tipos de variables, nos toca hablar
de las del tipo hashes (conjuntos definidos) y que son como las
arrays pues funcionan como conjuntos pero con valores
relacionados. Así, podemos decir que los hashes se
componen de una definición y su información. Para definirlas se utiliza el signo
de porcentaje (%) y se utilizan de las siguiente
forma:

%emails = ( "carlos" => 
      "carlos\@maestrosdelweb.com",
 "pedro" => "pedro\@maestrosdelweb.com",
 
      "mario" => "mario\@maestrosdelweb.com",


      "tomas" => "tomas\@maestrosdelweb.com");

Como observamos, a cada nombre se le asigna
un valor que representa su email. Así es como funcionan los hashes, definiendo un valor para cada definición.

Otra cosa que aprendemos en este ejemplo es que antes de escribir el signo de
arroba (@) cuando es parte de un valor, debe de
tener anteriormente la diagonal invertida (\) para que el programa no lo confunda
con una array.

Ahora, para tomar el valor de cada uno de las definiciones que hay en las hashes,
se utiliza un sistema muy similar al que utilizamos anteriormente con los arrays. Por ejemplo, para tomar el valor
del email de mario, utilizaríamos $emails{‘mario’} Para ejemplificar el uso
que podemos darles a los hashes se presenta el siguiente
ejemplo: 

1. #!/usr/bin/perl

      2. $Titulo = "Mi segundo ejemplo de variables";

      3. @habiles = ("lunes","martes","miercoles","jueves","viernes");


      4. print "Content-type:text/html\n\n";

      5. print "<HTML><HEAD><TITLE>$Titulo</TITLE></HEAD>\n";

      6. print "<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n"; 
      


      7. print "<H3>Mis días habiles son:</H3>\n";

      8. print "<H4>$habiles[0],</H4>\n";


      9. print "<H4>$habiles[1],</H4>\n";

      10. print "<H4>$habiles[2],</H4>\n";

      11. print "<H4>$habiles[3],</H4>\n";


      12. print "<H4>$habiles[4],</H4>\n";

      13. print "</BODY></HTML>\n";

Las hashes entonces le adhieren más funciones
a la variables. Podemos diseñar con esto en mente un directorio de emails o
de enlaces, fácilmente administrable y que podemos cambiar sin mucho esfuerzo.

Recuerden que si alguno de sus programas CGI les causa algún error, pueden consultar
la guía
para Solventar errores en aplicaciones CGI
de este sitio.

Con esto finalizamos la explicación de los tipos de variables que podemos manejar
en Perl.