Documente Academic
Documente Profesional
Documente Cultură
1. Introducción a Perl.................................................................................................................................3
1. Qué es Perl........................................................................................................................................3
2. Instalación de Perl............................................................................................................................3
3. Instalación de epicid para eclipse....................................................................................................4
Ejercicio..................................................................................................................................4
4. Conocer la versión de Perl instalada.................................................................................................4
2. Mi primer programa...............................................................................................................................5
1. El hola mundo...................................................................................................................................5
2. Separación de instrucciones.............................................................................................................6
3. Comentarios.....................................................................................................................................6
Ejercicios.................................................................................................................................7
4. Diferencia entre comillas simples y dobles......................................................................................7
Ejercicio..................................................................................................................................7
5. Los tipos de datos básicos................................................................................................................7
3. Variables.................................................................................................................................................9
1. Alcance de las variables y espacio de nombres................................................................................9
Ejercicio.................................................................................................................................10
4. Operadores............................................................................................................................................11
Ejercicio.................................................................................................................................12
5. Las representaciones de datos .............................................................................................................13
1. Escalares.........................................................................................................................................13
Ejercicio.................................................................................................................................13
2. Arrays.............................................................................................................................................13
Ejercicios...............................................................................................................................14
3. Operaciones sobre los arrays..........................................................................................................14
Ejercicios...............................................................................................................................14
4. Arrays asociativos...........................................................................................................................15
Ejercicios...............................................................................................................................15
6. Estructuras de control...........................................................................................................................16
1. Instrucciones if, else, elsif...............................................................................................................16
2. Instrucción unless...........................................................................................................................17
Ejercicios...............................................................................................................................17
3. Instrucción while............................................................................................................................17
4. Instrucción until..............................................................................................................................18
5. Instrucción for.................................................................................................................................18
6. Instrucción foreach.........................................................................................................................19
7. Instrucción last................................................................................................................................19
8. Instrucción next..............................................................................................................................19
Ejercicios...............................................................................................................................20
Bibliografía..............................................................................................................................................22
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
1. Introducción a Perl
1. Qué es Perl
"Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma
características del lenguaje C, del lenguaje interpretado shell (sh), AWK, sed, Lisp y, en un
grado inferior, de muchos otros lenguajes de programación. Estructuralmente, Perl está
basado en un estilo de bloques como los del C o AWK, y fue ampliamente adoptado por su
destreza en el procesado de texto y por no tener ninguna de las limitaciones de los otros
lenguajes de script." (http://es.wikipedia.org/wiki/Perl). Perl es un lenguaje de programación
interpretado, es por ello que cuando queremos ejecutar un script Perl, debemos llamar al
interprete, que en distribuciones linux basadas en debian se encuentra en /usr/bin/perl.
Perl es un lenguaje de propósito general originalmente desarrollado para la manipulación de
texto y que ahora es utilizado para un amplio rango de tareas incluyendo administración de
sistemas, desarrollo web, programación en red, desarrollo de GUI y más.
Se previó que fuera práctico (facilidad de uso, eficiente, completo) en lugar de hermoso
(pequeño, elegante, mínimo). Sus principales características son que es fácil de usar, soporta
tanto la programación estructurada como la programación orientada a objetos y la
programación funcional, tiene incorporado un poderoso sistema de procesamiento de texto y
una enorme colección de módulos disponibles.
2. Instalación de Perl
Si estas trabajando en linux, la mayoría de las distribuciones ya tienen instalado Perl. Sin
embargo, suponiendo el caso de que no esté instalado, lo que se debe hacer es averiguar
cual es el paquete para nuestra distribución y proceder a instalarlo.
Para verificar si tenemos a Perl instalado podríamos ejecutar el siguiente comando en una
consola: $ whereis perl. En el caso de estar instalado el la consola nos devolverá la ruta
donde éste se encuentra, en mi caso fue: /usr/bin/perl .
Si deseamos actualizar la versión ya instalada, o estamos en un sistema operativo diferente
de linux, lo mejor es seguir las instrucciones que se encuentran en la página de Perl
(http://www.perl.com). Allí encontraremos links para la documentación, links de descargas,
etc.
También podemos ir a la página del CPAN, donde podremos encontrar información de
módulos, scripts, la FAQ entre otros. Si van a trabajar bajo windows recomendaría que visiten
http://www.activestate.com/ y se posicionen en la pestaña de Perl.
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
3. Instalación de epicid para eclipse
• Ejercicio
1. Guiado por el instructor instale eclipse y el plugin para desarrollar en Perl.
4. Conocer la versión de Perl instalada
Para visualizar la versión de Perl que tenemos instalada basta con abrir una consola de
terminal y proceder a escribir lo siguiente: $ perl v . La consola mostrará la versión junto con
información adicional importante.
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
2. Mi primer programa
1. El hola mundo
Una vez confirmado que Perl se encuentra instalado en nuestra computadora, es hora de
realizar nuestro primer programa en Perl.
Para ello necesitamos un editor de texto, el que más nos guste (gedit, Geany, Padre, plugin
de Perl para Eclipse EPIC) y una consola de terminal abierta para ejecutar el programa.
Abrimos el editor de texto, y escribimos lo siguiente:
#!/usr/bin/perl
print 'Hola mundo ';
También podemos imprimir con salto de línea de la siguiente forma:
#!/usr/bin/perl
print "Hola mundo \n";
La linea 1 indica la ruta donde se encuentra el interprete de Perl, en mi caso está en /usr/bin/
perl. La linea 2 contiene una instrucción que permite imprimir datos en la pantalla con la
palabra reservada print.
Para ingresar una entrada desde el teclado lo hacemos con <STDIN> y le asignamos la
entrada a una variable. En el próximo punto veremos qué es una variable y cómo trabajar con
ellas, por el momento, les dejo un ejemplo de cómo capturar una entrada desde el teclado e
imprimirla por pantalla.
$nombre = <STDIN>;
print $nombre;
Una vez que hemos escrito esto, procedemos a guardar el archivo con extensión .pl
Nota: Es recomendable crear un directorio donde vamos a guardar todos los scritps, esto es
para mantener un orden. A si mismo, el nombre que le demos al archivo no debe contener
espacios en blanco ni caracteres especiales.
Luego de haber guardado el archivo abrimos un terminal, nos vamos a la ruta donde se
encuentra el archivo recién creado y procedemos a ejecutar el siguiente comando:
$ perl nombre_archivo.pl
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
Se imprime Hola mundo
De esa forma estamos ejecutando el código que se encuentra dentro del archivo. Existe otro
forma de ejecutar el código, y es ejecutándolo con ./ (En linux). Para esto el archivo debe
tener permisos de ejecución (ls l para conocer los permisos). Le damos los permisos de
ejecución de la siguiente forma:
$ chmod 755 nombre_archivo.pl
Luego ejecutamos el archivo
$ ./nombre_archivo.pl
Recuerden que Perl es un lenguaje interpretado, no necesitamos compilar antes de mandar a
ejecutar.
2. Separación de instrucciones
Para separar las instrucciones se usa el signo punto y coma ( ; ) tal y como lo vimos en
nuestro primer programa.
3. Comentarios
Como en todo lenguaje de programación, en Perl podemos hacer comentarios que permiten
documentar el código que vamos escribiendo. El símbolo a utilizar es el numeral ( # ).
#!/usr/bin/perl
#Imprime Hola mundo
print 'Hola mundo';
#Imprime otra cosa
print 'otra cosa;
Desafortunadamente en Perl no existen los comentarios multilínea, por lo que si queremos
comentar varias líneas quedaría algo así
#!/usr/bin/perl
#Imprime Hola mundo
#Este es un segundo comentario
#Este es un tercer comentario
print 'Hola mundo';
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
• Ejercicios
2. Escriba un programa que imprima por pantalla su nombre y apellido.
3. Comente el código realizado en el ejercicio anterior. Los comentarios deben
explicar qué hace el programa.
4. Diferencia entre comillas simples y dobles
Las comillas dobles permite el ingreso de caracteres especiales. Un ejemplo de esto es el
salto de línea. Supongamos que queremos mandar a imprimir un texto y que nos deje un
salto de línea, para ello haríamos algo así:
#!/usr/bin/perl
print "Hola \n";
El \n es un carácter especial que realiza un salto de línea. Así como este, hay muchos más
caracteres especiales, como el \t para tabular, \r para retorno de carro o regreso al inicio,
ect.
Existen momentos en los que no queremos que se haga el salto de línea, sino que queremos
que se imprima el \n como tal. Para ello podemos hacer uso de las comillas simples.
Las comillas dobles permiten también la interpolación, es decir, podemos imprimir el valor de
una variable que se encuentra entre comillas dobles. Un ejemplo de esto es el siguiente:
#!/usr/bin/perl
$a = 1; # declaración de variable en Perl
print "$a"; # imprime un 1
print '$a'; # imprime $a
• Ejercicio
4. Haga un resumen con sus propias palabras de las diferencias entre las comillas
dobles y las simples en Perl. Realice pruebas en Perl.
5. Los tipos de datos básicos
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
éste no lleva punto. Cuando se trata de una cadena, debe ir encerrada entre comillas dobles
o comillas simples.
$entero = 24;
$real = 4.3;
$cadena = 'Cadena de caracteres';
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
3. Variables
Los nombres de las variables puede iniciar con letras, números siempre y cuando inicie con
el carácter underscore ( _ ) y no necesitan ser declaradas antes de usarlas. Las letras
mayúsculas y minúsculas son diferenciadas en los nombres de las variables.
#!/usr/bin/perl
$Var;
$var;
El tipo de la variable será asignado automáticamente por Perl, es decir, dependiendo del
valor que se asigne a la variable, Perl sabe de qué tipo es la misma. Si declaramos una
variable de tipo cadena y le sumamos una variable de tipo numérica, Perl buscará
transformar la variable de tipo string a número. Si la transformación es exitosa procede a
realizar la suma de los números, en el caso de no ser exitosa, transformará la cadena en el
número 0 y procederá luego a realizar la respectiva suma. Al declarar variables en Perl y no
inicializarlas, éstas toman valores predeterminados en función de su contexto. En un contexto
numérico su valor es 0 y en un contexto de cadenas de caracteres, su valor predeterminado
es la cadena vacía “”.
1. Alcance de las variables y espacio de nombres
En Perl es posible dividir por bloques el código y crear variables globales o locales. Al dividir
por bloques es posible proteger los nombres de las variables de un bloque con la palabra
reservada my. Cada archivo .pl es un bloque y dentro de cada archivo pueden haber
subbloques que son creados con las llaves { }.
El ejemplo de abajo ilustra lo anteriormente dicho:
#!/usr/bin/perl
#Declaración de variable global
$var = 'Mi variable global';
#Creamos un bloque
{
#definimos una variable local al bloque con el mismo
# nombre de la variable global
my $var = 'Mi variable local ';
#Imprimimos el valor de la variable dentro del bloque
print "$var\n"; # Mi variable local
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
} #Cerramos el bloque
#Imprimimos el valor de la variable fuera del bloque
print "$var\n"; # Mi variable global
En resumidas palabras, cada vez que aparece llaves dentro de un programa de Perl, se está
definiendo un bloque. Si utilizamos la palabra reservada my, ésta variable será local al bloque
y no afectará a otras variables que estén fuera del bloque a pesar de que tengan el mismo
nombre.
• Ejercicio
5. Realice un programa que intente sumar un número con una letra. Indique lo
ocurrido y explique por qué ocurrió.
6. Cree un programa con el código de arriba, pruebe si éste funciona y haga un
resumen de lo que allí ocurre. Añada otros bloques de variables y realice
pruebas.
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
4. Operadores
En la siguiente tabla podrán conocer los operadores más importantes usados sobre
variables.
$a = 2**3;
$b = 3 + $a;
print "$a y $b "; # Imprime 8 y 11
$cadena1 = 'Hola';
$cadena2 = 'Mundo';
$cadena = $cadena1.$cadena2;
print $cadena; # HolaMundo
$cadena = "$cadena1"x2;
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
print $cadena; # HolaHola
Los operadores aritméticos se pueden combinar con el de asignación para realizar la
operación de forma más simple.
$a = $a + 3;
$a += 3;
• Ejercicio
8. Imprima por pantalla el resultado de tres al cuadrado y tres al cubo. El resultado
obtenido debe ser 9 y 27 respectivamente.
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
5. Las representaciones de datos
Perl tiene 3 tipos de representación de datos: Los escalares, los arrays y los arrays
asociativos o tabla hash.
1. Escalares
Este tipo de datos va precedido por el signo $ y cada variable puede contener un solo valor
entero, real o una cadena de caracteres.
#!/usr/bin/perl
print 1.2; #Numero real
print 3; #Numero entero
#Cadena con comillas simples
print 'Esto es una cadena';
#Cadena con comillas dobles
print "Cada en comillas dobles";
• Ejercicio
9. Realice un programa que capture sus datos personales desde el teclado y los
imprima por pantalla.
2. Arrays
Un array es una lista de datos de tipo escalar que inicia desde la posición cero. Las variables
de tipo array van precedidas del símbolo ( @ ) y los elementos contenidos en el array pueden
ser combinación de datos básicos.
Cada elemento de la lista es un escalar al que se le debe hacer referencia usando el símbolo
de dato escalar ( $ ).
#!/usr/bin/perl
@array1;
@array2 = (1,"uno",2,"dos");
print "@array2\n";
$array2[4] = "otro"; # agregamos un nuevo valor a nuestro array
print "El segundo elemento del array es $array2[1]";
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
En Perl no nos tenemos que preocupar de la reserva ni de la gestión de memoria.
• Ejercicios
10. Inicialice un array que contenga sus datos personales y profesión. Imprima por
pantalla la profesión a la cual se dedica.
11. Añada un elemento a ejercicio anterior. ¿Qué sucedió?. ¿De qué tamaño era su
array inicial?. Ahora imprima sólo el último elemento de su array.
Ayuda. El tamaño del array lo obtenemos de la siguiente forma: $#array
3. Operaciones sobre los arrays
Existen funciones predefinidas en Perl que nos permiten realizar operaciones sobre los
arrays (arreglos). Aquí vamos a nombrar algunas funciones interesantes:
• push: Permite añadir elementos al final de un array. El array es tratado como una pila.
• pop: Permite sacar el último elemento de un array.
• unshift: Permite agregar elementos a un array por el lado izquierdo.
• shift: Permite sacar el primer elemento por el lado izquierdo del array
• reverse: Invierte los valores de un array
• sort: Ordena un array ascendentemente según código ASCCI
Veamos algunos ejemplos:
#!/usr/bin/perl
@lista = (1,2,3);
push(@lista,4); # @lista=(1,2,3,4)
$a = pop(@lista); # $a=4, @lista = (1,2,3)
unshift(@lista,0); # @a = (0,1,2,3)
$x=shift(@lista); # $x=0, @lista = (1,2,3)
@lista=reverse(@lista); # @lista = (3,2,1)
@lista = sort(@lista); # @lista = (1,2,3)
@lista = (1,2,16,32,4,64,8);
#Sort ordena los valores como si fueran string
@lista = sort(@lista); # @lista = (1,16,2,32,4,64,8)
• Ejercicios
12. Crear un programa que ingrese 4 nombres de personas, los almacene en un
array, los ordene ascendentemente.
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
13. Crear un programa parecido al de arriba con la diferencia que el ordenamiento
será de forma descendente.
Nota: Los nombres deben ser capturados por pantalla con <STDIN>
4. Arrays asociativos
Un array asociativo está indexado por cadenas de caracteres y no por números. Para definir
el tipo de dato array asociativo se utiliza % y la indexación por clave se hace utilizados las
llaves { }.
Cada elemento del array está indexado por el anterior formando parejas (clave, valor).
%numero = (1, "uno",2,"dos",3,"tres");
$numero{"cuatro"} = 4; # clave = cuatro. Valor = 4.
Otra forma de trabajar con los array asociativos es la siguiente
%meses = (“Enero”=> "Ene",“Febrero”=>"Feb",“Marzo”=>"Mar");
Al igual que para los arrays, los arrays asociativos también tienes funciones que nos pueden
ser muy útiles a la hora de trabajarlos.
La función keys devuelve un array con las claves de un array asociativo. La función values
devuelve un array con los valores de un array asociativo. Con exits($hash{clave}) podemos
ver si una clave existe o no. Con delete($hash{clave}) se elimina un elemento de un array
asociativo.
• Ejercicios
14. Copie el ejemplo del array asociativo %meses y agregue el mes de Abril.
15. Inicialice un array asociativo para los días de la semana y muestre por pantalla
el valor de la tercera clave.
Ayuda: Usa la función keys
16. Crear un array asociativo que almacene los datos de una persona: Nombre,
Apellido, Cédula, etc, e imprima por pantalla.
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
6. Estructuras de control
Las estructuras de control permiten cambiar el flujo normal del programa.
1. Instrucciones if, else, elsif
Las sintaxis de estas instrucciones son las siguientes:
if (condidión) {
sentencias;
}
if (condidión) {
sentencias;
}
else {
sentencias;
}
if (condidión) {
sentencias;
}
elsif (condidión) {
sentencias;
}
#!/usr/bin/perl
print "Ingrese su edad: ";
$edad = <stdin>;
if ($edad >= 18 && $edad <110) {
printf "Eres mayor de edad\n";
}
elsif ($edad<18 && $edad >= 0) {
printf "Eres menor de edad\n";
}
Otra forma de trabajar los if para eliminar las { } es la siguiente:
sentencia if (condición);
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
#!/usr/bin/perl
print "Ingrese su edad: ";
$edad = <stdin>;
printf "Eres mayor de edad\n" if ($edad >= 18 && $edad <110);
printf "Eres menor de edad\n" if ($edad<18 && $edad >= 0)
2. Instrucción unless
Hace todo lo contrario al if, es decir, ejecuta la acción si no se cumple la condición.
Realizamos el ejercicio anterior usando la instrucción unless
sentencia unless (condición);
#!/usr/bin/perl
print "Ingrese su edad: ";
$edad = <stdin>;
printf "Eres menor de edad\n" unless ($edad >= 18 && $edad <110);
printf "Eres mayor de edad\n" unless ($edad<18 && $edad >= 0);
• Ejercicios
17. Ejecutar el código de ejemplo de unless. ¿Cuál es la salida obtenida y por
qué?.
3. Instrucción while
Ejecuta un bloque de instrucciones mientras la condición sea verdadera. Con esta
instrucción, el bloque se ejecuta al menos una vez.
Su sintaxis es la siguiente:
while (condición) {
sentencias;
}
#!/usr/bin/perl
$cont = 0;
while ($cont <5) {
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
print "$cont\n";
$cont++; # Imprime los números del 0 al 4.
}
4. Instrucción until
Esta instrucción, a diferencia del while, permite que el código se ejecute al menos una vez y
se repite mientras la condición sea falsa .
Sintaxis:
until (condición) {
instrucciones;
}
#!/usr/bin/perl
$cont = 0;
until ($salir eq 's') {
print "$cont\n"; # Imprime el primer número sin importar el valor que tenga $salir
$cont++;
$salir = "s" if ($cont == 5);
}
Este ejercicio se puede hacer de forma más sencilla. Se programó así para que el lector
interprete mejor la función de la sentencia until.
5. Instrucción for
Permite ejecutar un bloque de código controlando el valor de las variables que intervienen en
el control del flujo.
Su sintaxis:
for (valor de inicio; condición de parada; valor de incremento/decremento) {
sentencias;
}
#!/usr/bin/perl
for ($cont = 0; $cont < 5; $cont++) {
print "$cont\n";
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
}
6. Instrucción foreach
El foreach nos permite obtener la clave o el valor de un array asociativo. Por ejemplo, si
queremos obtener las claves hacemos lo siguiente:
#!/usr/bin/perl
%array = ("clave1","Valor 1","clave2","Valor 2");
foreach $clave (keys %array)
{
print "$clave \n";
}
En el caso de querer imprimir los valores hacemos algo como esto:
#!/usr/bin/perl
%array = ("clave1","Valor 1","clave2","Valor 2");
foreach $valores (values %array)
{
print "$valores \n";
}
7. Instrucción last
Con esta instrucción se interrumpe la ejecución del bucle y continua justo después del
bloque.
last;
8. Instrucción next
Interrumpe la ejecución del bloque de instrucción actual, no el bloque, y continua con la
ejecución de la próxima iteración.
next;
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
• Ejercicios
18. Realice un programa que permita determinar si una fecha es mayor a otra. El
formato de fecha debe ser yyy/mm/dd.
19. Realice un programa que imprima por pantalla la tabla de multiplicar del 9. Se
debe utilizar estructuras de repetición.
20. Realice un programa que permita al usuario ingresar el nombre de un artículo,
el precio del mismo y la cantidad que desea comprar. El programa debe
sumarle el IVA(11%) y calcular el total a pagar por el usuario (Debe validar los
tipos de datos).
21. Escriba un programa que imprima por pantalla lo siguiente:
Nota: Utilizando estructuras de repetición.
*
**
***
****
22. Escriba un programa que imprima por pantalla lo siguiente:
*
**
***
****
***
**
*
23. Escriba un programa que imprima por pantalla lo siguiente:
*
***
*****
*******
*********
*******
*****
***
*
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
24. Realice un programa que verifique si un año es bisiesto o no.
25. Realice un programa que obtenga la hora del sistema y la muestre en formato
de uso común. La salida deberá tener el siguiente formato: Jueves 10 de febrero
del 2011.
26. Realice un programa que obtenga la hora del sistema (hhmmss) y le sume una
cantidad de segundos ingresada por el usuario.
27. Realice un programa que le sume un día a la fecha actual.
Nota: La fecha se puede obtener del sistema.
T.S.U Joger Quintero
T.S.U Iris Uzcátegui
Bibliografía
• http://www.ulpgc.es/otros/tutoriales/perl/cap1.htm
• http://flanagan.ugr.es/perl/
• http://perlrules.mx.tripod.com/
T.S.U Joger Quintero
T.S.U Iris Uzcátegui