Sistema de Programas Alejandro Jimenez C.I 21.029.591 Sistema de Programas Larry Wall comenz a trabajar en Perl en 1987 mientras trabajaba como programador en Unisys y anunci la versin 1.0 en el grupo de noticias comp.sources.misc el 18 de diciembre de 1987. El lenguaje se expandi rpidamente en los siguientes aos. Perl 2, publicado en 1988, aport un mejor motor de expresiones regulares. Perl 3, publicado en 1989, aadi soporte para datos binarios.
Alejandro Jimenez C.I 21.029.591 Sistema de Programas Aplicaciones del lenguaje Perl Prcticamente, sirve para todo. Todas las tareas de administracin de UNIX se pueden simplificar con un programa en Perl. Se usa tambin para tratamiento y generacin de ficheros de texto. Tambin hay proyectos completos y complejos escritos en Perl, pero son los menos. Lenguaje Prctico para la Extraccin e Informe Alejandro Jimenez C.I 21.029.591 Sistema de Programas Para trabajar con Perl se requieren dos requerimientos bsicos y fciles de conseguir:
Un editor de texto para poder escribir los programas Perl.
El intrprete de Perl, que ejecute los programas realizados con Perl. Perl es un lenguaje visualizado para la manipulacin de cadenas de caracteres, archivos y procesos. Esta manipulacin se ve simplificada por el importante nmero de operadores a disposicin del usuario Alejandro Jimenez C.I 21.029.591 Sistema de Programas La estructura completa de Perl deriva ampliamente del lenguaje C. Perl es un lenguaje imperativo, con variables, expresiones, asignaciones, bloques de cdigo delimitados por llaves, estructuras de control y subrutinas Perl tambin toma caractersticas de la programacin shell. Todas las variables son marcadas con un signo precedente (sigil). Los sigil identifican inequvocamente los nombres de las variables, permitiendo a Perl tener una rica sintaxis. Notablemente, los sigil permiten interpolar variables directamente dentro de las cadenas de caracteres (strings) Alejandro Jimenez C.I 21.029.591 Sistema de Programas Existen varias caractersticas acerca de Perl que son importantes de rescatar 1. Es fcil de usar, aunque es difcil de aprender. 2. Existen muy pocas cosas que no se pueden hacer con este lenguaje, por lo que se le puede considerar como un lenguaje que no tiene fronteras. 3. Es rpido de crear, ya que no posee funciones que, aunque sean bastante interesantes, hagan disminuir la velocidad de desarrollo de una aplicacin del lenguaje. Alejandro Jimenez C.I 21.029.591 Sistema de Programas 4. El lenguaje es feo, siendo esta una de las principales razones para su difcil aprendizaje, aunque esto se compensa con el poder de alcance del lenguaje. 5. Se puede utilizar en varios entornos 6. Tiene caractersticas que soportan una variedad de paradigmas de programacin, como la estructural, funcional y la orientada a objetos. 7. Tiene incorporado un poderoso sistema de procesamiento de texto y una enorme coleccin de mdulos disponibles. Alejandro Jimenez C.I 21.029.591 Sistema de Programas 8. Ofrece una ayuda en lnea desde la consola de comandos. Por ejemplo, para obtener ayuda sobre la funcin print, se debe de escribir en una ventana MSDOS: perldoc f print. 9. Se ejecuta desde la lnea de comandos de una ventana del sistema operativo. 10. Es un lenguaje case-sensitive, lo cual hace referencia a la propiedad de un texto para presentarse en maysculas o en minsculas. Alejandro Jimenez C.I 21.029.591 Sistema de Programas Un aspecto importante de este lenguaje es que, por defecto, no es necesario declarar las variables previamente a su uso. Las variables se pueden empezar a usar directamente en las expresiones, lo cual ofrece mucha flexibilidad al momento de estar desarrollando el cdigo.
Existen tres tipos bsicos de variables, los cuales se citan a continuacin. Alejandro Jimenez C.I 21.029.591 Sistema de Programas 1. Escalar: empiezan por el carcter $. Un escalar puede almacenar nmeros, strings, referencias a otras variables y descriptores de ficheros.
Algunos ejemplos de la declaracin de este tipo de datos son los siguientes: $a = 5; $b = "xxx"; $c = $a++; Perl convertir los strings en nmeros y viceversa dependiendo del contexto en que sean usados. En el siguiente ejemplo los strings $n y $m son tratados como nmeros cuando son argumentos del operador suma. Este cdigo imprime el nmero '5', desechando cualquier informacin no numrica de la operacin y dejando los valores de las variables intactos. (El operador de concatenacin no es +, sino .)
$n = "3 manzanas"; $m = "2 naranjas"; print $n + $m; Alejandro Jimenez C.I 21.029.591 Sistema de Programas Alejandro Jimenez C.I 21.029.591 Sistema de Programas 2. Arreglos: las variables array empiezan por el carcter @, y sirven para agrupar un conjunto de variables de tipo escalar.
En este aspecto tambin se debe de nombrar la existencia de matrices. Algunos ejemplos son los siguientes:
@a = (95, 7, 'fff' ); print @a; Una lista se define listando sus elementos, separados por comas y rodeados por parntesis donde as sea requerido por la precedencia de los operadores.
@puntuaciones = (32, 45, 16, 5); Alejandro Jimenez C.I 21.029.591 Sistema de Programas 3. Hash: las variables tipo hash o array asociativo empiezan por el carcter %. Se trata de un tipo caracterstico de Perl, y consiste bsicamente en un array en el cual se accede a sus distintos elementos a travs de una clave en lugar de por un ndice.
Los elementos se accesan por claves y no se permiten claves duplicadas. Para crear un elemento de un hash se requiere una lista de dos valores, siendo el primer elemento la clave y el segundo es el valor asociado a dicha clave, como se muestra en el siguiente ejemplo:
%almacen = ( 'Peras', 5, 'Manzanas', 3); Print $almacen{'Peras'}; Tiene estructuras de control orientado al bloque, similar a los de los lenguajes de programacin C y Java. Las condiciones estn rodeadas por parntesis y los bloques subordinados por llaves:
etiqueta while ( condicin ) {... } etiqueta while ( condicin ) {... } continue {... } etiqueta for ( expresin inicial; expresin condicional; expresin incremental ) {... } etiqueta foreach var ( lista ) {... } etiqueta foreach var ( lista ) {... } continue {... } if ( condicin ) {... } if ( condicin ) {... } else {... } if ( condicin ) {... } elsif ( condicin ) {... } else {... }
Alejandro Jimenez C.I 21.029.591 Sistema de Programas Alejandro Jimenez C.I 21.029.591 Sistema de Programas