PERL Ferrer Camacho Practical Extraction and Report Language

  • Slides: 27
Download presentation
PERL Ferrer Camacho Practical Extraction and Report Language Lenguajes de Programación Dra. Ana Lilia

PERL Ferrer Camacho Practical Extraction and Report Language Lenguajes de Programación Dra. Ana Lilia Laureano Cruces

Temas a abordar Historia Características del lenguaje Humberto Ferrer C.

Temas a abordar Historia Características del lenguaje Humberto Ferrer C.

Historia de Perl 0. 000 Presentación del lenguaje Perl por Larry Wall a sus

Historia de Perl 0. 000 Presentación del lenguaje Perl por Larry Wall a sus socios en 1986 Humberto Ferrer C.

Historia de Perl 1. 000 Fue creado por Larry Wall en 1987 Originalmente fue

Historia de Perl 1. 000 Fue creado por Larry Wall en 1987 Originalmente fue creado para la manipulación de textos. Perl is a interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It's also a good language for many system management tasks. The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal). Humberto Ferrer C. 18/dic

Historia de Perl 2. 000 El 5 de enero del 1988 se libero •

Historia de Perl 2. 000 El 5 de enero del 1988 se libero • Se integraron las expresiones regulares • El uso de subrutinas • Recursividad • Manejo de archivos • Integración de foreach • Asignación múltiple Humberto Ferrer C.

Historia de Perl 3. 000 El 18 de octubre del 1989 se libero Principalmente

Historia de Perl 3. 000 El 18 de octubre del 1989 se libero Principalmente se ocupaba para administración Paso por referencia a las subrutinas Incorporación del depurador Se pueden cortar las listas Incremento en las funciones. (mkdir, rmdir, getppid …) Humberto Ferrer C.

Historia de Perl 4. 000 El 21 de marzo del 1991 se libero The

Historia de Perl 4. 000 El 21 de marzo del 1991 se libero The first edition of Programming Perl Utilización para WEB Incorporación a Linux Humberto Ferrer C.

Historia de Perl 5. 000 El 18 de octubre del 1994 se libero Orientación

Historia de Perl 5. 000 El 18 de octubre del 1994 se libero Orientación a Objetos El uso de : : como delimitador de paquete Incremento en las funciones: abs(), chomp(), glob(), … Se introduce => como sinónimo de comas Se crea CPAN (Comprehensive Perl Archive Network) Humberto Ferrer C.

Paradigma "Hay más de una forma de hacerlo". Larry Wall, autor del lenguaje de

Paradigma "Hay más de una forma de hacerlo". Larry Wall, autor del lenguaje de programación Perl no establece ninguna paradigma de programación (de hecho, no se puede decir que sea orientado a objetos, modular o estructurado aun cuando soporta directamente todos estos paradigmas) Humberto Ferrer C.

Características Flexibilidad Claridad Portabilidad Humberto Ferrer C.

Características Flexibilidad Claridad Portabilidad Humberto Ferrer C.

Algo de programación Variables Estructuras de control Expresiones regulares Subrutinas Módulos Orientación a objetos

Algo de programación Variables Estructuras de control Expresiones regulares Subrutinas Módulos Orientación a objetos Humberto Ferrer C.

Funciones de Perl -X, abs, accept, alarm, atan 2, bind, binmode, bless, caller, chdir,

Funciones de Perl -X, abs, accept, alarm, atan 2, bind, binmode, bless, caller, chdir, chmod, chomp, chown, chroot, closedir, connect, continue, cos, crypt, dbmclose, dbmopen, defined, delete, die, do, dump, each, endgrent, endhostent, endnetent, endprotoent, endpwent, endservent, eof, eval, exec, exists, exit, exp, fcntl, fileno, flock, format, formline, getc, getgrent, getgrgid, getgrnam, gethostbyaddr, gethostbyname, gethostent, getlogin, getnetbyaddr, getnetbyname, getnetent, getpeername, getpgrp, getppid, getpriority, getprotobyname, getprotobynumber, getprotoent, getpwnam, getpwuid, getservbyname, getservbyport, getservent, getsockname, getsockopt, glob, gmtime, goto, grep, hex, import, index, int, ioctl, join, keys, kill, last, lcfirst, length, link, listen, localtime, lock, log, lstat, m, map, mkdir, msgctl, msgget, msgrcv, msgsnd, my, next, no, oct, opendir, ord, our, package, pipe, pop, pos, printf, prototype, push, q, qr, quotemeta, qw, qx, rand, readdir, readline, readlink, readpipe, recv, redo, ref, rename, require, reset, return, reverse, rewinddir, rindex, rmdir, s, scalar, seekdir, select, semctl, semget, semop, send, setgrent, sethostent, setnetent, setpgrp, setpriority, setprotoent, setpwent, setservent, setsockopt, shift, shmctl, shmget, shmread, shmwrite, shutdown, sin, sleep, socketpair, sort, splice, split, sprintf, sqrt, srand, stat, study, substr, symlink, syscall, sysopen, sysread, sysseek, system, syswrite, telldir, tied, times, truncate, ucfirst, umask, undef, unlink, unpack, unshift, untie, use, utime, values, vec, waitpid, wantarray, warn, write, y Humberto Ferrer C.

Variables Escalares Siempre inician con $ y un caracter Arreglos Siempre inician con @

Variables Escalares Siempre inician con $ y un caracter Arreglos Siempre inician con @ y un caracter Arreglos asociados Siempre inician con % y un caracter No es necesario predeclarar las variables, se pueden empezar a usar directamente en las expresiones. Humberto Ferrer C.

Variables especiales Existen dos variables muy importantes en Perl las variables anónimas $_ @_

Variables especiales Existen dos variables muy importantes en Perl las variables anónimas $_ @_ Y sirven para el paso de parámetros. Humberto Ferrer C.

Operadores de comparación Comparación Numerico Cadenas Igual No igual Menor que == != <

Operadores de comparación Comparación Numerico Cadenas Igual No igual Menor que == != < eq ne lt Mayor que Menor o igual Mayor o igual > <= >= gt le ge Humberto Ferrer C.

Estructuras de control if/unless print “hola” if(true); unless (false) { print “hola”; } while/until

Estructuras de control if/unless print “hola” if(true); unless (false) { print “hola”; } while/until while(true) {print “ ”}; for($i = 1; $i <= 10; $i++) { print "$i "; } foreach @a = (1, 2, 3, 4, 5); foreach $b (@a) {$b *=3; print $b; } Humberto Ferrer C.

Subrutinas Para definir una subrutina o función se utiliza la palabra sub suma {

Subrutinas Para definir una subrutina o función se utiliza la palabra sub suma { $valor 0=shift @_; $valor 1=shift @_; return $valor 1+$valor 0; } … print suma(1, 2); Humberto Ferrer C.

Expresiones regulares Una expresión regular es una forma de expresar gramaticalmente la estructura de

Expresiones regulares Una expresión regular es una forma de expresar gramaticalmente la estructura de cualquier cadena alfanumérica. Y se realiza mediante el operador // Modificadores de expresiones regulares Operador Función . Describe cualquier carácter, excepto newline. () Agrupa una serie de patrones en un simple elemento. +, *, ? Coinciden con el elemento al que preceden repetido 1 o más veces, 0 o más, ó 0 ó 1. [. . ] Indica una clase de caracteres, [^. . . ] niega la clase, - indica un rango decaracteres, como [a-z]. (. . ¦. . ) Coincide con una de las alternativas. w, W Coincide con los alfanuméricos, W con los no-alfanuméricos. s, S Coincide con los espacios en blanco, S con los que no lo son. d D Coincide con los numéricos, D no-numéricos. b, B Coincide con límites de palabra, B con el interior de una palabra. $, ^ Coincide con el final de una línea o cadena y con el principio. Humberto Ferrer C.

Módulos Un módulo proporciona una manera de empaquetar el código de Perl para reusarse.

Módulos Un módulo proporciona una manera de empaquetar el código de Perl para reusarse. #!/usr/local/bin/perl ##### Modulo. pm use File; sub funcion { … } 1; Humberto Ferrer C.

Orientación a objetos Un objeto de Perl es una modificación de los módulos a

Orientación a objetos Un objeto de Perl es una modificación de los módulos a los cuales se les da una referencia a las clases. #!/usr/local/bin/perl ## objeto. pm package objeto; sub medotodos { # metoros sub new { #contructor my $self = {}; $self->{METODOS} = undef; bless($self); return $self; } if (@_) { $self->{METODOS} = shift; . . . } return $self->{METODOS}; } sub DESTROY {# Destructor. print "Destruido. n"; } 1; my $self = shift; Humberto Ferrer C.

CPAM CPAN's 7240 modules distributions in alphabetical order by modules contained in the distributions

CPAM CPAN's 7240 modules distributions in alphabetical order by modules contained in the distributions Wed Nov 24 16: 09: 56 2004 GMT Entre algunas categorias: Algorithm, Alta. Vista, Apache, ASP, Audio, Business, CAD , Calendar , CGI , Chemistry , Crypt , Date. Time , Email , Event , Excel , Exporter , Gtk … Humberto Ferrer C.

Ejemplo palindrome #!/usr/bin/perl # Palindrome. pl # Humberto Ferrer C. @pila=@lista =''; print "Ingrese

Ejemplo palindrome #!/usr/bin/perl # Palindrome. pl # Humberto Ferrer C. @pila=@lista =''; print "Ingrese una palabra para verificar si es palindromen"; $entrada=<STDIN>; chop($entrada); @lista=split('', $entrada); if($#lista%2) { for($i=0; $i<$#lista/2; $i++) { push @pila, $lista[$i]; print "@pila n"; } for(; $i<$#lista+1; $i++) { print "@pila <-". $lista[$i]. "n"; $l=pop @pila; if($l ne $lista[$i]) { print "No es palindromen"; exit; } } print "si fuen"; } else { for($i=0; $i<$#lista/2; $i++) { push @pila, $lista[$i]; printl ; } $i++; for(; $i<$#lista+1; $i++) { print "@pila <-". $lista[$i]. "n"; $l=pop @pila; if($l ne $lista[$i]) { printl "No es palindrome"; exit; } } printl "si fue"; } Humberto Ferrer C.

Ventajas Aunque desarrollado originalmente en un entorno UNIX, actualmente hay versiones para casi todos

Ventajas Aunque desarrollado originalmente en un entorno UNIX, actualmente hay versiones para casi todos los sistemas operativos ya que esta programado en C. Humberto Ferrer C.

Ventajas Cuando ejecutamos un programa en Perl, se compila el código fuente a un

Ventajas Cuando ejecutamos un programa en Perl, se compila el código fuente a un código intermedio en memoria, se le optimiza pero es ejecutado por un motor, como si se tratara de un intérprete. El resultado final, es que utilizamos algo que se comporta como un intérprete, pero que tiene un rendimiento comparativo al de programas compilados Humberto Ferrer C.

Desventajas Poco tipificado No es recomendado para las siguientes tareas: Sistemas de tiempo real

Desventajas Poco tipificado No es recomendado para las siguientes tareas: Sistemas de tiempo real Desarrollo de bajo nivel del sistema operativo que trabajen controladores Aplicaciones de memoria compartida de procesos o aplicaciones extremadamente largas. Humberto Ferrer C.

Algunas aplicaciones Sistemas operativos Perl/Linux http: //perllinux. sourceforge. net/ Manipulación de textos Páginas dinámicas

Algunas aplicaciones Sistemas operativos Perl/Linux http: //perllinux. sourceforge. net/ Manipulación de textos Páginas dinámicas CGI Administración UNIX Humberto Ferrer C.

Bibliografía Programming Perl, por Larry Wall y otros www. perl. org www. cpam. com

Bibliografía Programming Perl, por Larry Wall y otros www. perl. org www. cpam. com Humberto Ferrer C.