¿Como instalar el interprete de Perl?
Lo podemos descargar de aquí:
http://www.perl.org/get.html
Para Windows disponemos de dos interpretes ActiveState y StrawBerry. Personalmente uso ActiveState pero esto como todo, va por gustos.
Nota: En sistemas Linux esta instalado por defecto, así que no lo tendrás que instalar.
¿Ya tengo instalado el interprete pero... Como ejecuto mis scripts?
En primer lugar todos los scripts en Perl tienen que tener la extensión .pl. Para ejecutarlo es tan facil como hacer doble clic sobre el script o bien desde la linea de comandos:
perl miscript.pl
Para probar podéis crear este pequeño script con el famoso mensaje "Hola Mundo!"
Código
#!/usr/bin/perl
Aclaraciones rápidas sobre el script de arriba:
-Todas las lineas de código acaban con el punto y coma (';').
-Los comentarios se escriben con la almohadilla ('#')
-La linea 1 indica la ruta del interprete (En principio esto es solo necesario para sistemas Linux).
Dicho esto, ¡empecemos!.
Variables
Las variables se declaran con my y tienen que tener delante del nombre el símbolo del dolar ('$'). Además en este lenguaje no hay tipos de variables, es decir, se declara igual una variable que contiene un número que una que tiene una cadena.
Ejemplos de declaraciones de variables:
Código
#!/usr/bin/perl my $cadena = "hola soy una cadena\n"; my $numero = 1; my $n1 = 2; my $n2 = 3; exit;
Algunos datos del código de arriba:
-En las lineas 3,11,12 y 13 vemos los caracteres '\n', dichos caracteres indican salto de linea.
-El operador punto (".") concatena cadenas (Si, el interprete se ha encargado de pasar el número a cadena antes de unirlo).
-La linea 12 hace exactamente lo mismo que la linea 13.
-exit termina la ejecución del script (Esto no es necesario ponerlo, pero es bueno saberlo.)
Arrays
Los arrays también se declaran con my, pero en vez de usar el dolar, se usa el arroba ('@').
Ejemplo de declaración de un array:
Código
#!/usr/bin/perl my @array; # array sin inicializar my @animales = ('Gato','Perro','Pez'); # array inicializado
Aclaraciones:
-El primer elemento de un array es el 0, no el no como podemos comprobar en la linea 6.
-Para acceder a los elementos se usa el simbolo del dolar ($animales[0]).
En Perl existen funciones como push o pop, para manejar los arrays.
push introduce elementos al array y pop los saca, ejemplo:
Código
#!/usr/bin/perl my @animales = ('Gato','Perro','Pez'); # array inicializado
Hay muchas mas funciones, podemos encontrar algunas más explicadas aquí
Operadores aritméticos
Esto suele variar poco de un lenguaje de programación a otro.
Suma: +
Resta: -
Multiplicación: *
División: /
Potencia: **
Residuo de una operación: %
Perl, puede convertir número a cadena y viceversa, ejemplo:
Código
#!/usr/bin/perl my $n1 = 5; my $n2 = 3; my $c1 = '5'; my $c2 = '5';
También existen, al igual que en C y C++ los operadores de incremento y decremento:
Código
my $var = 1; $var++; # Incremento en uno el valor de la variable $var--; # Decremento en uno de valor de la variable
Operadores Lógicos
and: &&
or: ||
not: !
Estos operadores se usan casi siempre como complemento de la sentencia if, pero en ese lenguaje tienen otros usos como por ejemplo indicar errores:
Código
En este caso si no abre el archivo muestra el mensaje de error.
if
Esta sentencia nos sirve para controlar el flujo del programa, ej:
Código
#!/usr/bin/perl my $var = 1; if ($var == 1) # sentencia if { # si $var es igual a uno se ejecuta lo que esta aqui }else{ # si no es igual a uno se ejecuta esto }
En las lineas 8 y 11 aparece un '\' delante de $var, ese símbolo es de escape, si no estuviera nos motraría el valor de la variable:
Código
#!/usr/bin/perl my $var = 1;
Con la función system enviamos un comando al sistema, en este caso (para Windows) realiza una pausa, si no pusiéramos la línea system("PAUSE") al ejecutarse el programa la consola desaparecería.
También podemos realizar comparaciones de esta manera:
Código
if (Comparacion) # se realiza la comparacion { }elsif (comparacion) # si no se cumple la de arriba se vuelve a ralizar otra comparacion { }elsif (Comparacion) # Si no se cumple la de arriba de vuelve a realizar otra comparacion { }else{ # Si no se cumple ninguna de las anteriores se ejecuta esta }
Ejemplo práctico:
Código
#!/usr/bin/perl my $var = 1; if ($var == 2) # se realiza la comparacion { }elsif ($var == 3) # si no se cumple la de arriba se vuelve a ralizar otra comparacion { }elsif ($var == 3) # Si no se cumple la de arriba de vuelve a realizar otra comparacion { }else{ # Si no se cumple ninguna de las anteriores se ejecuta esta }
Ahora vamos a ver los operadores de los que disponemos para realizar dichas comparaciones:
Tipo Númerico Cadena
Mayor A > gt
Menor A < lt
Igual A == eq
No Igual A != ne
Menor o Igual A <= le
Mayor o Igual A >= ge
No podemos comparar una cadena con el equivalente numerico ni viceversa, ej:
Código
my $c1 = "hola"; my $c2 = "adios"; my $n1 = 1; my $n2 = 2; if ($c1 eq $c2) # sentencia CORRECTA { # Si son iguales de ejecuta } if ($c1 == $c2) # sentencia ERRONEA { # Si son iguales de ejecuta } if ($n1 eq $n2) # sentencia ERRONEA { # Si son iguales de ejecuta } if ($n1 == $n2) # sentencia CORRECTA { # Si son iguales de ejecuta }
for
Los bucles for se pueden usar como en C:
Código
for (my $i = 0; $i<10; $i++) # se repite 10 veces { }
O de esta manera, mas característica de este lenguaje:
Código
for my $i (1..10) # Se repite 10 veces { }
while
Este bucle se repite hasta que la sentencia sea falsa, de tal manera que esto:
Código
while (1) { }
Sería un bucle infinito.
Otro ejemplo que suma tres números:
Código
my $i = 0; my $num = 0; while ($i<3) { $num = $num + <STDIN>; #$num += <STDIN>; # esta linea hace exáctamente lo mismo que lo de arriba. $i++; }
<STDIN> lo que hace es leer datos de entrada.