Introducción a perl

52
Lenguaje Perl Dr. Orestes Febles Díaz

Transcript of Introducción a perl

Page 1: Introducción a perl

Lenguaje Perl

Dr. Orestes Febles Díaz

Page 2: Introducción a perl

Introducción

•Origen y uso

•Tipos de datos

•Operadores y funciones

•Entradas y Salidas

•Alternativas y ciclos

Temas generales

Page 3: Introducción a perl

Introducción

•Entender los conceptos básicos del

intérprete PERL.

•Escribir un programa en PERL para un

ambiente de programación.

•Resolver un problema sencillo usando PERL

Objetivos

Page 4: Introducción a perl

Introducción

•Trabajo Práctico en laboratorio

•Pregunta Escrita Semanal

•Prueba Final

Evaluaciones

Page 5: Introducción a perl

Introducción

•Qué es PERL?

•Versiones actuales.

•Sintaxis de un programa.

•Primer programa en PERL.

•Tipos de datos.

Temas Primera Clase

Page 6: Introducción a perl

Introducción

•Origen y uso

•Tipos de datos

•Operadores y funciones

•Entradas y Salidas

•Alternativas y ciclos

Temas generales

Page 7: Introducción a perl

Introducción

•Entender las características generales del

lenguaje.

•Deducir posible aplicaciones del lenguaje.

•Conocer los tipos de datos que utiliza PERL.

Objetivos

Page 8: Introducción a perl

Introducción

•Fue creado por Larry Wall

• Lanzamiento 18 de diciembre de 1987.

• Perl 2, liberado en 1988, aportó un mejor motor

de expresiones regulares.

• Perl 3, liberado en 1989, añadió soporte para

datos binarios.

Origen de PERL

Page 9: Introducción a perl

Introducción

• Programador y escritor nacido el 27/9/54.

• Su fe cristiana le ha influido en la propia

terminología de Perl (referencia bíblica

"Perla de gran valor" (Mateo 13:46).

• Ha ganado premios como Obfuscated C

Code (IOCCC) y el FSF Award for the

Advancement of Free Software en 1998.

Larry Wall

Page 10: Introducción a perl

Introducción

•Hasta 1991 la única documentación de PERL

era una simple página de manual Unix.

•En 1991 se publicó Programming Perl (el libro

del dromedario) y se convirtió en la referencia

de facto del lenguaje.

Evolución

Page 11: Introducción a perl

Introducción

•PERL se simboliza generalmente por un dromedario

(camello arábigo).

•O'Reilly es propietario de este símbolo como marca

registrada, para proteger la "integridad e impacto de

este símbolo"

Símbolo

Page 12: Introducción a perl

Introducción

• “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 y

desarrollo de GUI”.

Concepto

Page 13: Introducción a perl

Introducción

•En 2007, Perl 5 continua siendo mantenido.

•Características importantes y algunas

construcciones esenciales han sido añadidas,

incluyendo soporte Unicode, Hilos, soporte para

la programación orientada a objetos y otras

mejoras.

Evolución

Page 14: Introducción a perl

Introducción

• Perl 5 fue liberado el 17 de octubre de 1994. A

destacar, los módulos proveen de un mecanismo para

extender el lenguaje sin modificar el intérprete.

• El 26 de octubre de 1995, se creó el Comprehensive

Perl Archive Network (CPAN),una colección de sitios

web que almacenan y distribuyen fuentes en Perl,

binarios, documentación, scripts y módulos.

PERL 5

Page 15: Introducción a perl

Introducción

•Perl (Practical Extraction and Report Languaje).

•Pensado para la manipulación de cadenas de

caracteres, archivos y procesos.

•Utilizado actualmente para un amplio rango de

tareas incluyendo administración de sistemas,

desarrollo web, programación en red y otras.

Características

Page 16: Introducción a perl

Introducción

•Es fácil de usar.

•Soporta la programación estructurada, la

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.

Características

Page 17: Introducción a perl

Introducción

• No es pre-compilado, pero aún así es más rápido que la

mayoría de lenguajes interpretados

• Sus programas son analizados, interpretados y

compilados por el intérprete antes de su ejecución.

• Estas características hacen que el mantenimiento y la

depuración de un programa en PERL sean mucho más

sencilla que el mismo programa escrito en C.

Características

Page 18: Introducción a perl

Introducción

•Estructura derivada de C.

•Lenguaje imperativo, con variables, expresiones,

asignaciones, bloques de código delimitados por

llaves, estructuras de control y subrutinas.

•Todas las variables son marcadas con un signo

precedente (sigil). Similar a los Shell.

Características

Page 19: Introducción a perl

Introducción

• Soporta estructuras de datos complejas, funciones de

primer orden .

• Habilita el empaquetado de código reutilizable como

módulos.

• Realiza el tipado automático de datos y la gestión de

memoria.

• Tolera excepciones a las reglas y emplea la heurística

para resolver ambigüedades sintácticas.

Características

Page 20: Introducción a perl

Introducción

• Tiene muchas y variadas aplicaciones, gracias a la disponibilidad

de muchos módulos estándares y provenientes de terceras

partes.

• Para escribir guiones (scripts) CGI. Es una de las "tres P" (Perl,

Python y PHP), que son los lenguajes más populares para la

creación de aplicaciones Web, .

• Es usado a menudo como un "lenguaje pegamento", ligando

sistemas e interfaces que no fueron diseñados específicamente

para interoperar; y para el "escarbado de datos“.

Aplicaciones

Page 21: Introducción a perl

Introducción

• Es una popular herramienta de propósito general para

los administradores de sistemas, especialmente en

programas pequeños que pueden ser escritos y

ejecutados en una sola línea de comandos.

• Es ampliamente usado en finanzas y bioinformática,

donde es apreciado por su desarrollo rápido, tanto de

aplicaciones como de despliegue, así como la

habilidad de manejar grandes volúmenes de datos.

Aplicaciones

Page 22: Introducción a perl

Introducción

• La administración de sistemas operativos.

• Potente en la creación de pequeños programas que

pueden ser usados como filtros para obtener

información de ficheros, realizar búsquedas, etc.

• Nació en un entorno Unix, pero ya hay versiones para

casi todas las plataformas existentes.

Aplicaciones

Page 23: Introducción a perl

Introducción

• La creación de formularios en la Web.

• Para la creación de scripts CGI que realizan el

intercambio de información entre aplicaciones

externas y servicios de información.

Aplicaciones

Page 24: Introducción a perl

Introducción

• Un script en PERL es una sucesión de instrucciones.

Éstas se delimitan por punto y coma (;).

• Los comentarios en los scripts deben ir precedidos

por el símbolo #.

• Los caracteres que siguen a este símbolo y que está

contenidos en la misma línea se consideran

comentarios y se ignoran.

Estructura de un programa

Page 25: Introducción a perl

Introducción

• El siguiente script muestra la cadena de caracteres

"¡Hola, mundo!". Este script se llamará hola.pl y

contendrá las siguientes líneas.

#!/usr/local/bin/perl

print "¡Hola, mundo!";

• Una vez verificado los permisos de dicho script

estaremos listos para ejecutarlo simplemente tecleando

en la línea de comandos: hola.pl.

Hola Mundo

Page 26: Introducción a perl

Introducción

• Un programa PERL conocer la ganancia en la venta de

un libro

print “Precio del libro comprado? ";

$precio= <STDIN>;

$ganancia= $precio * 0.15;

print “Mi ganancia es de $ganancia\n";

Resultados, Moneda???

Librería

Page 27: Introducción a perl

Introducción

• Las variables se indican con un símbolo de $ en este caso se

trata de variables escalares, que contienen un valor numérico o

una cadena.

• La transformación se hace automáticamente. Cada variable se

declara en el momento que se usa, y si no se ha usado

anteriormente, aparece automáticamente con el valor 0 o "

(cadena nula).

• Las variables en PERL tienen todas visibilidad global, si no se

dice lo contrario.

Elementos Observados

Page 28: Introducción a perl

Introducción

•Aparece la intervención del usuario, leyendo en

una variable lo que éste teclea.

•Se utiliza un filehandle o puntero a un fichero

abierto (el equivalente a un FILE* en C).

• Es utilizada la entrada estándar o STDIN

(estándar input); también existe la salida

estándar o STDOUT.

Elementos Observados

Page 29: Introducción a perl

Introducción

• Los paréntesis angulares <>, indican que se lee del

fichero una línea completa.

• Interpolación de variables. Una variable incluida dentro

de una cadena entre comillas dobles será sustituida por

su valor (no en el caso de tratarse de comillas simples).

Elementos Observados

Page 30: Introducción a perl

Introducción

• PERL permite representar los tipos de datos básicos como son los reales,

los enteros, las cadenas de caracteres y el tipo booleano.

• Los tipos numéricos (reales y enteros).

• Los valores numéricos expresados literalmente se presentan en forma de

valores reales codificados en doble precisión.. Por ejemplo:

• $x = 0.897; # un real $y = 6.23e-24; # un real

• $n = 567; # un entero

• $i = -234; # un entero

Tipos de Datos

Page 31: Introducción a perl

Introducción

• Los valores enteros no pueden empezar por cero

porque esto permite especificar un entero mediante su

codificación octal o hexadecimal. El código octal se

antecede con en cero 0; el código hexadecimal se

antecede con un 0x o 0X. Por ejemplo:

• $x = 0377; # equivale a 255

• $y = 0xff; # equivale a 255

Octales y decimales

Page 32: Introducción a perl

Introducción

•Las cadenas de caracteres se especifican por

medio de un sucesión de caracteres delimitada

por comillas ("..") o apóstrofes ('..').

•Cuando van delimitadas por comillas (".."), toda

variable referenciada en el interior de la cadena

se evalúa y se reemplaza por su valor.

Cadenas de caracteres

Page 33: Introducción a perl

Introducción

• Las instrucciones siguientes:

$wld = "mundo";

$str = "¡Hola $wld!";

• asignan al escalar la cadena de caracteres "¡Hola mundo!". Por

el contrario, las cadenas de caracteres delimitadas por

apóstrofes se dejan intactas. Por ejemplo:

$str = '¡Hola $wld!';

• asigna al escalar $str la cadena de caracteres "¡Hola $wld!".

Ejemplos de cadenas

Page 34: Introducción a perl

Introducción

• Se utiliza cuando la cadena de caracteres contiene varias

líneas y/o comillas o apóstrofes. Su sintaxis es la siguiente:

$str = <<etiqueta;

....

etiqueta

• El fin de la cadena se determina por la nueva línea que

contiene únicamente el identificador. Éste no debe ir

precedido por un espacio ni marca de tabulación.

Delimitando cadenas

Page 35: Introducción a perl

Introducción

$mensaje= <<SALUDO;

hola,

buenos días,

buenas tardes,

adiós,

SALUDO

Ejemplo

Page 36: Introducción a perl

Introducción

•El tipo booleano existe, al igual que en C, de

modo implícito, es decir, un número es falso si

es igual a cero y verdadero en cualquier otro

caso.

•Como el cero está asociado a la cadena vacía

(""), ésta también equivale al valor falso.

Tipo de dato booleano

Page 37: Introducción a perl

Introducción

• Tres tipos de representaciones de datos en PERL:

• Los escalares, los arrays y los arrays de indexación

literal o listas asociadas.

• Estas tres representaciones permiten asociar a cada

variable utilizada un tipo. Las variables no tienen que

declararse antes de su uso. Se asignan de manera

dinámica y se les asigna un valor predeterminado en

función del contexto.

Representaciones de Datos

Page 38: Introducción a perl

Introducción

• Las variables de tipo escalar van precedidas por el

símbolo $.

$real = 4.53;

$entero = -45;

$ristra = "Hola";

• En un contexto numérico el valor predeterminado es 0,

mientras que en un contexto de cadena de caracteres el

valor predeterminado es la cadena vacía "".

Escalares

Page 39: Introducción a perl

Introducción

• El tipo y el valor de las variables en Perl se

determina a partir del contexto.

• $x = 4.1; # un real

• $y = "11"; # una cadena de caracteres

• $z = $x + $y; # adición de dos valores numéricos

• $t = $x . $y; # concatenación de dos cadenas

• print $z, "\n", "$t \n";

Declaración de Tipo

Page 40: Introducción a perl

Introducción

• $z ------------------------- 15.1.

• $t ------------------------- "4.111".

•Reiteramos que en Perl no es necesario realizar

una declaración de tipos, ni es necesario el

operador.

Los valores serán …

Page 41: Introducción a perl

Introducción

• Sean las líneas de código

• $year = 35;

• print "Tengo $year años";

• El resultado :????????

Interpolación

Page 42: Introducción a perl

Introducción

• Un array es una lista de datos de tipo escalar. Cada

elemento de la lista es una variable escalar a la que

se le asocia un valor. Las variables de tipo array se

identifican por el prefijo arroba @. Por ejemplo:

@numeros = (2, 1, 667, 23, 2.2, 5, 6);

@letras = ("perro", "gato", "león");

@mezcla = ("hola", 23, "adios", 31.234);

Arrays

Page 43: Introducción a perl

Introducción

• También se permite definir los elementos de un array a partir de sus

valores extremos como se muestra a continuación:

• @alfabeto = (a..z);

• Los elementos de un array se referencian mediante índices. El primer

elemento se referencia por el índice 0. Por ejemplo:

$numeros[4]; ?????

$letras[2]; ?????

$mezcla[0]; ?????

Arrays

Page 44: Introducción a perl

Introducción

• @num1 = @numeros[1..3]; # @num1 = (1, 667, 23)

• @str = @letras[0,2]; # @str = ("perro", "león")

• ($ristra, $num) = @mezcla; # $ristra = "hola", $num = 23

• Esta última instrucción vemos que permite asignar los dos

primeros valores del array @mezcla a las variables escalares

$ristra y $num. Por otro lado, el acceso a un array fuera de

rango devuelve un valor indefinido 0 o "" según el contexto.

Acceso a Array mediante operador

Page 45: Introducción a perl

Introducción

•Una lista asociativa está indexada por cadenas

en lugar de por números. Se utiliza % para

definir el tipo de lista asociativa y un elemento

está indexado por el anterior formando ambos

parejas del tipo (clave, valor).

Listas asociativas

Page 46: Introducción a perl

Introducción

• %cuota = ("root", 1000, "pat", 256, "fiona", 4000);

• En este caso, para acceder a cualquiera de los elementos de

%cuota debemos conocer su clave. Por ejemplo:

• $id = $cuota{"pat"}; # $id = 256

• Esta lista puede completarse añadiendo nuevos valores y

asociando a cada clave el valor correspondiente. Por ejemplo:

• $cuota{"dave"} = 250;

• donde la clave es "dave" y el valor asociado es 250.

Ejemplo

Page 47: Introducción a perl

Introducción

• Las referencias son el equivalente a los punteros en C.

Es un tipo de datos que permite referenciar datos

contenidos en otra entidad.

• La definición de referencia se usa mediante el operador

de referencia backslash ("\").

• A diferencia de C, Perl no deja "huella" de las

referencias en memoria

Las Referencias

Page 48: Introducción a perl

Introducción

• Podemos crear una referencia usando un operador

de referenciación en una variable o un valor. En el

caso de la variable es crear un medio alternativo de

acceder al valor de la variable.

• $rescalar = \$escalar;

• $rarreglo = \@arreglo;

• $rhash = \%hash;

Referencias

Page 49: Introducción a perl

Introducción

• Por otro lado, cuando usamos el operador de referenciación

con un valor, creamos objetos anónimos que sólo pueden ser

accedidos por medio de la referencia.

• $rescalar=\"hola"; #referencia a la cadena anónima "hola"

• $rarray=[1,2,3]; #referencia al array anónimo (1,2,3)

• $rlista={"llave1" => "dato1","llave2" => "dato2"};

• Nota: En esta representación usamos el operador "=>" para la

representación de listas asociativas anónimas.

Observación

Page 50: Introducción a perl

Introducción

•%rNumeros = {"arabes" => [1,2,3], "romanos"

=> [I, V, X]}

•Una lista asociativa anónima donde las claves

son cadenas de caracteres y los valores son

referencia a array

Estructuras de datos más complejas

Page 51: Introducción a perl

Introducción

•$rarray=[1,2,3,4] #crea arreglo anónimo

(1,2,3,4)

•$$rarray[2]="tres";

•#modifica el array anónimo a (1,2,"tres",4)

•@$rarray=(); #limpia el arreglo anónimo

Uso de las referencias a arrays y listas asociativas.

Page 52: Introducción a perl

Introducción

•PERL es un lenguaje interpretado que tiene

un amplio uso y es particularmente potente

para en tratamiento de listas

Conclusiones