En Perl hay tres tipos de datos: escalares, arrays y hashes. En este apartado vamos a comenzar por los escalares.
Los datos escalares son las variables simples y pueden contener números y cadenas de texto. Las variables simples van precedidas siempre por el símbolo $ delante del nombre. No es necesario definir el tipo de variable, se hace en función del contenido. La asignación de valores se realiza con el operador =, y la definición de la variable con my .
my $animal = "camello"; # $animal es un string my $result = 23; # $result es un número
Números
A continuación algunos ejemplos de datos numéricos, para ver su formato en Perl:
- Números reales:
- 1.25
- 255.0
- 7.25e45 (7.25 por 10 elevado a 45)
- -6.5e24 (-6.5 por 10 elevado a 24)
- -12e-24 (-12 por 10 elevado a -24)
- -1.2E-23 (la E puede ser mayúscula)
- Números enteros decimales:
- 0
- 2011
- -40
- Números enteros no decimales:
- Octal, comenzando por 0 (cero):
- 0377 (377 octal, 255 en decimal)
- Hexadecimal, comenzando por 0x (cero-equis):
- 0xff (FF en hexadecimal, 255 en decimal)
- Binario, comenzando por 0b (cero-be):
- 0b11111111 (también 255 en decimal)
- Octal, comenzando por 0 (cero):
Cadenas de caracteres
Las cadenas de texto, o strings, no son otra cosa que una secuencia de caracteres (letras, números u otros signos o símbolos).
Debemos recordar que las cadenas de texto se pueden escribir entre comillas simples ( ‘ ) o dobles ( « ). Como vimos en el apartado de sintaxis, el tratamiento de las cadenas difiere si usamos unas comillas u otras. Las dobles nos permiten incluir variables dentro de la cadena, así como caracteres especiales.
Algunos caracteres especiales:
Carácter |
Descripción |
n | Nueva línea |
t | Tabulado |
07 | ASCII octal (ejemplo 7) |
x7f | ASCII hexadecimal (ejemplo 7f) |
\ | Símbolo |
@ | Símbolo @ |
« | Comillas dobles « |
$ | Símbolo $ |
A pesar de tener varios tipos de datos escalares (números y strings), Perl se encarga de convertir los strings en números y viceversa en función del contexto en que sean usados.
$n = "3 manzanas"; $m = "2 naranjas"; print ($n + $m);
En el ejemplo anterior, las cadenas $n y $m son tratados como números cuando son argumentos del operador suma ( + ). Este código imprime por pantalla el número «5», desechando cualquier información no numérica de la operación y dejando los valores de las variables intactos.
Booleanos
Perl, a diferencia de otros lenguajes de programación, no tiene un tipo de dato definido como booleano. En su lugar utiliza unas las variables de datos escalares que acabamos de ver (números o cadenas de texto). Pero entonces, ¿cómo saber si una variable es verdadero o falso? La respuesta está en las siguientes reglas:
- Si el valor es un número, 0 significa falso; cualquier otra cosa significa verdadero.
- Si el valor es una cadena de texto, la cadena vacía ( «» ) significa falso; cualquier otra cadena significa verdadero.
Hay un pequeño truco o excepción a estas reglas, y es la cadena de texto ‘0’, que se traduce directamente al número 0, es considerada también como falso. Por lo tanto, ‘0’ es la única cadena no vacía que se interpreta como falso.
Imagen | ken yee en Flickr