Perl tiene principalmente tres tipos de variables: escalares, que básicamente son todos los y referencias; arreglos y los que son arreglos asociativos. Además es muy simple identificar su tipo, ya que está incorporado a su identificador.
Arreglos
Los términos lista y arreglo comúnmente son utilizados de manera indiferente, sin embargo, una lista es un colección de valores y un arreglo es una matriz variable que puede contener una lista.
Cada elemento de un arreglo es una variable escalar, por lo que sus nombres deben empezar con $
.
es 0 y para obtener el índice más alto se utiliza el signo de numeral #
.
Ejemplo:
#!/usr/bin/perl
@lenguajes = ("Python","Bash","Perl");
printf "%d lenguajes de scripting son:\n", $#lenguajes + 1;
print join("\n", @lenguajes), "\n";
Nota: la función join
devuelve la cadena resultante de la unión de los elementos del arreglo con la cadena especificada, para este ejemplo con el salto de línea.
Ejecutamos el script.
~ $ vim arreglo.pl
~ $ chmod +x arreglo.pl
~ $ ./arreglo.pl
Nota: si no conoces este u otros comandos de Bash, te recomiendo repases las temporadas 1 y 2 de esta serie.
Salida:
3 lenguajes de scripting son:
Python
Bash
Perl
Otra alternativa para crear una lista de cadenas y asignarla a una variable de tipo arreglo es la siguiente:
@lenguajes = (Bash, Python, Perl);
Como había mencionado en la nota anterior, Perl no tiene una sintaxis estricta por lo que las cadenas pueden ir con o sin comillas.
Para acceder a un elemento en específico del arreglo:
printf "%s\n", $lenguajes[0];
o bien
print "${lenguajes[1]}\n";
Hashes
Un hash es un arreglo asociativo, que representa una colección de tuplas (clave, valor), las claves al igual que los valores pueden ser cualquier tipo de escalar.
Ejemplo:
#!/usr/bin/perl
%tipos_lenguajes = ( Python => 'scripting',
Java => 'orientado a objetos',
C => 'estructurado',
Prolog => 'lógico',
Haskell => 'funcional',);
foreach my $clave (keys %tipos_lenguajes)
{
print "$clave = $tipos_lenguajes{$clave}\n";
}
Salida:
Java = orientado a objetos
C = estructurado
Python = scripting
Prolog = lógico
Haskell = funcional
Funciones
defined(valor);
Devuelve verdadero en caso de que exista el valor.
delete(clave);
Elimina la tupla que contenga la clave dada.
each(hash);
Devuelve una lista de tuplas que contienen la clave y valor de las hash.
- Devuelve verdadero si el hash contiene la clave.
keys(hash);
Regresa una lista con todas las claves de la hash.
values(hash);
Devuelve una lista con todos los valores de la hash.
Hasta el momento hemos aprendido los tipos de variables que podemos utilizar en Perl, en las siguientes entregas los utilizaremos para profundizar en las características y funcionalidades de este poderoso lenguaje. ¡Hasta entonces!