Introducción a perl

Post on 13-Jun-2015

2.383 views 0 download

Transcript of Introducción a perl

Lenguaje Perl

Dr. Orestes Febles Díaz

Introducción

•Origen y uso

•Tipos de datos

•Operadores y funciones

•Entradas y Salidas

•Alternativas y ciclos

Temas generales

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

Introducción

•Trabajo Práctico en laboratorio

•Pregunta Escrita Semanal

•Prueba Final

Evaluaciones

Introducción

•Qué es PERL?

•Versiones actuales.

•Sintaxis de un programa.

•Primer programa en PERL.

•Tipos de datos.

Temas Primera Clase

Introducción

•Origen y uso

•Tipos de datos

•Operadores y funciones

•Entradas y Salidas

•Alternativas y ciclos

Temas generales

Introducción

•Entender las características generales del

lenguaje.

•Deducir posible aplicaciones del lenguaje.

•Conocer los tipos de datos que utiliza PERL.

Objetivos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Introducción

$mensaje= <<SALUDO;

hola,

buenos días,

buenas tardes,

adiós,

SALUDO

Ejemplo

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

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

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

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

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 …

Introducción

• Sean las líneas de código

• $year = 35;

• print "Tengo $year años";

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

Interpolación

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

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

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

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

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

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

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

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

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

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.

Introducción

•PERL es un lenguaje interpretado que tiene

un amplio uso y es particularmente potente

para en tratamiento de listas

Conclusiones