SlideShare ist ein Scribd-Unternehmen logo
1 von 27
PERL
Practical Extraction and Report Language
Dra. Ana Lilia Laureano Cruces
Lenguajes de Programación
Ferrer Camacho
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 socios en 1986
Humberto Ferrer C.
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).
18/dic
Humberto Ferrer C.
El 5 de enero del 1988 se libero
Historia de Perl 2.000
•Se integraron las expresiones regulares
•El uso de subrutinas
•Recursividad
•Manejo de archivos
•Integración de foreach
•Asignación múltiple
Humberto Ferrer C.
El 18 de octubre del 1989 se libero
Historia de Perl 3.000
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.
El 21 de marzo del 1991 se libero
The first edition of Programming Perl
Utilización para WEB
Incorporación a Linux
Historia de Perl 4.000
Humberto Ferrer C.
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)
Historia de Perl 5.000
Humberto Ferrer C.
Paradigma
"Hay más de una forma de hacerlo".
Larry Wall, autor del lenguaje de
programación Perl.
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.
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, atan2, bind, binmode, bless, caller, chdir, chmod,
chomp, chop, chown, chr, chroot, close, 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, fork, format, formline, getc,
getgrent, getgrgid, getgrnam, gethostbyaddr, gethostbyname, gethostent,
getlogin, getnetbyaddr, getnetbyname, getnetent, getpeername, getpgrp, getppid,
getpriority, getprotobyname, getprotobynumber, getprotoent, getpwent, getpwnam,
getpwuid, getservbyname, getservbyport, getservent, getsockname, getsockopt,
glob, gmtime, goto, grep, hex,import, index, int, ioctl, join, keys, kill,
last, lc, lcfirst, length, link, listen, local, localtime, lock, log, lstat, m,
map, mkdir, msgctl, msgget, msgrcv, msgsnd, my, next, no, oct, open, opendir,
ord, our, pack, package, pipe, pop, pos, print, printf, prototype, push, q, qq,
qr, quotemeta, qw, qx, rand, read, readdir, readline, readlink, readpipe, recv,
redo, ref, rename, require, reset, return, reverse, rewinddir, rindex, rmdir,
s, scalar, seek, seekdir, select, semctl, semget, semop, send, setgrent,
sethostent, setnetent, setpgrp, setpriority, setprotoent, setpwent, setservent,
setsockopt, shift, shmctl, shmget, shmread, shmwrite, shutdown, sin, sleep,
socket, socketpair, sort, splice, split, sprintf, sqrt, srand, stat, study,
sub, substr, symlink, syscall, sysopen, sysread, sysseek, system, syswrite,
tell, telldir, tie, tied, time, times, tr, truncate, uc, ucfirst, umask, undef,
unlink, unpack, unshift, untie, use, utime, values, vec, wait, waitpid,
wantarray, warn, write, y
Humberto Ferrer C.
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
$_
@_
Y sirven para el paso de parámetros.
Humberto Ferrer C.
Operadores de comparación
Comparación Numerico Cadenas
Igual == eq
No igual != ne
Menor que < lt
Mayor que > gt
Menor o igual <= le
Mayor o igual >= ge
Humberto Ferrer C.
Estructuras de control
if/unless
print “hola” if(true);
unless (false) { print “hola”; }
while/until
while(true) {print “”};
for
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
sub suma {
$valor0=shift @_;
$valor1=shift @_;
return $valor1+$valor0;
}
…
print suma(1,2);
Humberto Ferrer C.
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.
#!/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
los cuales se les da una referencia a las clases.
#!/usr/local/bin/perl
## objeto.pm
package objeto;
sub new { #contructor
my $self = {};
$self->{METODOS} = undef;
bless($self);
return $self;
}
sub DESTROY {# Destructor.
print "Destruido.n";
}
sub medotodos { # metoros
my $self = shift;
if (@_) {
$self->{METODOS} = shift;
...
}
return $self->{METODOS};
}
1;
Humberto Ferrer C.
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, AltaVista, Apache, ASP,
Audio, Business, CAD , Calendar , CGI , Chemistry , Crypt ,
DateTime , Email , Event , Excel , Exporter , Gtk …
Humberto Ferrer C.
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
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 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
Desarrollo de bajo nivel del sistema operativo
que trabajen con 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 CGI
Administración UNIX
Humberto Ferrer C.
Bibliografía
Programming Perl, por
Larry Wall y otros
www.perl.org
www.cpam.com

Weitere ähnliche Inhalte

Was ist angesagt? (20)

LPW: Beginners Perl
LPW: Beginners PerlLPW: Beginners Perl
LPW: Beginners Perl
 
Introduction to PHP
Introduction to PHPIntroduction to PHP
Introduction to PHP
 
Jquery Giriş
Jquery GirişJquery Giriş
Jquery Giriş
 
Table and Form HTML&CSS
Table and Form HTML&CSSTable and Form HTML&CSS
Table and Form HTML&CSS
 
Basics PHP
Basics PHPBasics PHP
Basics PHP
 
Dart ppt
Dart pptDart ppt
Dart ppt
 
Dart programming language
Dart programming languageDart programming language
Dart programming language
 
Dart
DartDart
Dart
 
Perl Scripting
Perl ScriptingPerl Scripting
Perl Scripting
 
Php and MySQL
Php and MySQLPhp and MySQL
Php and MySQL
 
Web design - Working with tables in HTML
Web design - Working with tables in HTMLWeb design - Working with tables in HTML
Web design - Working with tables in HTML
 
Class 5 - PHP Strings
Class 5 - PHP StringsClass 5 - PHP Strings
Class 5 - PHP Strings
 
Formularios
FormulariosFormularios
Formularios
 
cascading style sheet ppt
cascading style sheet pptcascading style sheet ppt
cascading style sheet ppt
 
Introducción a Javascript I
Introducción a Javascript IIntroducción a Javascript I
Introducción a Javascript I
 
Tuple in python
Tuple in pythonTuple in python
Tuple in python
 
Css
CssCss
Css
 
Javascript comparison and logical operators
Javascript comparison and logical operatorsJavascript comparison and logical operators
Javascript comparison and logical operators
 
Regular Expression
Regular ExpressionRegular Expression
Regular Expression
 
Html Ppt
Html PptHtml Ppt
Html Ppt
 

Andere mochten auch

Catálogo 15 Oriflame España
Catálogo 15 Oriflame EspañaCatálogo 15 Oriflame España
Catálogo 15 Oriflame EspañaAnika Díaz
 
Estetica e usabilità apparente
Estetica e usabilità apparenteEstetica e usabilità apparente
Estetica e usabilità apparenteGavin Cettolo
 
La Rueda De Falkirk
La Rueda De FalkirkLa Rueda De Falkirk
La Rueda De Falkirkjoan vallmy
 
Bases legales. 65º aniversario México #destinos iberia
Bases legales. 65º aniversario México #destinos iberiaBases legales. 65º aniversario México #destinos iberia
Bases legales. 65º aniversario México #destinos iberiaIberia
 
Presentación Reducción de Gastos Generales ERA-EXECyL
Presentación Reducción de Gastos Generales ERA-EXECyLPresentación Reducción de Gastos Generales ERA-EXECyL
Presentación Reducción de Gastos Generales ERA-EXECyLFundación EXECyL
 
Actividad 2 correo exhange windows
Actividad 2 correo exhange windowsActividad 2 correo exhange windows
Actividad 2 correo exhange windowsYeider Fernandez
 
Desarrollo Compatible con el Clima en la Alta Cuenca del Rio Cauca
Desarrollo Compatible con el Clima en la Alta Cuenca del Rio CaucaDesarrollo Compatible con el Clima en la Alta Cuenca del Rio Cauca
Desarrollo Compatible con el Clima en la Alta Cuenca del Rio CaucaDecision and Policy Analysis Program
 
Al andalus presentacion completa
Al andalus presentacion completaAl andalus presentacion completa
Al andalus presentacion completaMarga Rubio Soto
 
Pequeño Homenaje a C.G. Jung
Pequeño Homenaje a C.G. JungPequeño Homenaje a C.G. Jung
Pequeño Homenaje a C.G. Junganamasala
 
Postales de navidad para niños
Postales de navidad para niñosPostales de navidad para niños
Postales de navidad para niñospitisfly
 
¿por qué elegir ágil? por María Fernanda Escudero
¿por qué elegir ágil? por María Fernanda Escudero¿por qué elegir ágil? por María Fernanda Escudero
¿por qué elegir ágil? por María Fernanda EscuderoDiana Pinto
 
Geothermal Resource Exploration
Geothermal Resource ExplorationGeothermal Resource Exploration
Geothermal Resource ExplorationAli Osman Öncel
 

Andere mochten auch (20)

Catálogo 15 Oriflame España
Catálogo 15 Oriflame EspañaCatálogo 15 Oriflame España
Catálogo 15 Oriflame España
 
Estetica e usabilità apparente
Estetica e usabilità apparenteEstetica e usabilità apparente
Estetica e usabilità apparente
 
La Rueda De Falkirk
La Rueda De FalkirkLa Rueda De Falkirk
La Rueda De Falkirk
 
Atelier 7 Créez vos campagnes avec MailJet
Atelier 7 Créez vos campagnes avec MailJetAtelier 7 Créez vos campagnes avec MailJet
Atelier 7 Créez vos campagnes avec MailJet
 
Bases legales. 65º aniversario México #destinos iberia
Bases legales. 65º aniversario México #destinos iberiaBases legales. 65º aniversario México #destinos iberia
Bases legales. 65º aniversario México #destinos iberia
 
High accuracy liquid level measurement-Proservo NMS5
High accuracy liquid level measurement-Proservo NMS5High accuracy liquid level measurement-Proservo NMS5
High accuracy liquid level measurement-Proservo NMS5
 
Presentación Reducción de Gastos Generales ERA-EXECyL
Presentación Reducción de Gastos Generales ERA-EXECyLPresentación Reducción de Gastos Generales ERA-EXECyL
Presentación Reducción de Gastos Generales ERA-EXECyL
 
Actividad 2 correo exhange windows
Actividad 2 correo exhange windowsActividad 2 correo exhange windows
Actividad 2 correo exhange windows
 
Abono tesis5
Abono tesis5Abono tesis5
Abono tesis5
 
Ccca 1973
Ccca 1973Ccca 1973
Ccca 1973
 
Desarrollo Compatible con el Clima en la Alta Cuenca del Rio Cauca
Desarrollo Compatible con el Clima en la Alta Cuenca del Rio CaucaDesarrollo Compatible con el Clima en la Alta Cuenca del Rio Cauca
Desarrollo Compatible con el Clima en la Alta Cuenca del Rio Cauca
 
Al andalus presentacion completa
Al andalus presentacion completaAl andalus presentacion completa
Al andalus presentacion completa
 
Pequeño Homenaje a C.G. Jung
Pequeño Homenaje a C.G. JungPequeño Homenaje a C.G. Jung
Pequeño Homenaje a C.G. Jung
 
Postales de navidad para niños
Postales de navidad para niñosPostales de navidad para niños
Postales de navidad para niños
 
¿por qué elegir ágil? por María Fernanda Escudero
¿por qué elegir ágil? por María Fernanda Escudero¿por qué elegir ágil? por María Fernanda Escudero
¿por qué elegir ágil? por María Fernanda Escudero
 
Geothermal Resource Exploration
Geothermal Resource ExplorationGeothermal Resource Exploration
Geothermal Resource Exploration
 
Mano de obra
Mano de obraMano de obra
Mano de obra
 
Memoria 2013 san paio
Memoria 2013 san paioMemoria 2013 san paio
Memoria 2013 san paio
 
Manual de reglas ortográficas
Manual de reglas ortográficasManual de reglas ortográficas
Manual de reglas ortográficas
 
Tensores
TensoresTensores
Tensores
 

Ähnlich wie Perl (20)

Introducción a php
Introducción a phpIntroducción a php
Introducción a php
 
Lenguajec intorduccionui
Lenguajec intorduccionuiLenguajec intorduccionui
Lenguajec intorduccionui
 
Php
PhpPhp
Php
 
0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf
 
Php Basico
Php BasicoPhp Basico
Php Basico
 
32773 php-basico
32773 php-basico32773 php-basico
32773 php-basico
 
Php
PhpPhp
Php
 
Tema2[php]
Tema2[php]Tema2[php]
Tema2[php]
 
Tema2 3
Tema2 3Tema2 3
Tema2 3
 
PHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básicoPHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básico
 
Especialista Web J9 Php
Especialista Web J9  PhpEspecialista Web J9  Php
Especialista Web J9 Php
 
Bash Tips Tricks Campus
Bash Tips Tricks CampusBash Tips Tricks Campus
Bash Tips Tricks Campus
 
Presentacion
PresentacionPresentacion
Presentacion
 
Php
PhpPhp
Php
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Programacion php
Programacion phpProgramacion php
Programacion php
 
Elementos del Hardware y Software
Elementos del Hardware y SoftwareElementos del Hardware y Software
Elementos del Hardware y Software
 

Perl

  • 1. PERL Practical Extraction and Report Language Dra. Ana Lilia Laureano Cruces Lenguajes de Programación Ferrer Camacho
  • 2. Humberto Ferrer C. Temas a abordar Historia Características del lenguaje
  • 3. Humberto Ferrer C. Historia de Perl 0.000 Presentación del lenguaje Perl por Larry Wall a sus socios en 1986
  • 4. Humberto Ferrer C. 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). 18/dic
  • 5. Humberto Ferrer C. El 5 de enero del 1988 se libero Historia de Perl 2.000 •Se integraron las expresiones regulares •El uso de subrutinas •Recursividad •Manejo de archivos •Integración de foreach •Asignación múltiple
  • 6. Humberto Ferrer C. El 18 de octubre del 1989 se libero Historia de Perl 3.000 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 …)
  • 7. Humberto Ferrer C. El 21 de marzo del 1991 se libero The first edition of Programming Perl Utilización para WEB Incorporación a Linux Historia de Perl 4.000
  • 8. Humberto Ferrer C. 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) Historia de Perl 5.000
  • 9. Humberto Ferrer C. Paradigma "Hay más de una forma de hacerlo". Larry Wall, autor del lenguaje de programación Perl. 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)
  • 11. Humberto Ferrer C. Algo de programación Variables Estructuras de control Expresiones regulares Subrutinas Módulos Orientación a objetos
  • 12. Humberto Ferrer C. Funciones de Perl -X,abs, accept, alarm, atan2, bind, binmode, bless, caller, chdir, chmod, chomp, chop, chown, chr, chroot, close, 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, fork, format, formline, getc, getgrent, getgrgid, getgrnam, gethostbyaddr, gethostbyname, gethostent, getlogin, getnetbyaddr, getnetbyname, getnetent, getpeername, getpgrp, getppid, getpriority, getprotobyname, getprotobynumber, getprotoent, getpwent, getpwnam, getpwuid, getservbyname, getservbyport, getservent, getsockname, getsockopt, glob, gmtime, goto, grep, hex,import, index, int, ioctl, join, keys, kill, last, lc, lcfirst, length, link, listen, local, localtime, lock, log, lstat, m, map, mkdir, msgctl, msgget, msgrcv, msgsnd, my, next, no, oct, open, opendir, ord, our, pack, package, pipe, pop, pos, print, printf, prototype, push, q, qq, qr, quotemeta, qw, qx, rand, read, readdir, readline, readlink, readpipe, recv, redo, ref, rename, require, reset, return, reverse, rewinddir, rindex, rmdir, s, scalar, seek, seekdir, select, semctl, semget, semop, send, setgrent, sethostent, setnetent, setpgrp, setpriority, setprotoent, setpwent, setservent, setsockopt, shift, shmctl, shmget, shmread, shmwrite, shutdown, sin, sleep, socket, socketpair, sort, splice, split, sprintf, sqrt, srand, stat, study, sub, substr, symlink, syscall, sysopen, sysread, sysseek, system, syswrite, tell, telldir, tie, tied, time, times, tr, truncate, uc, ucfirst, umask, undef, unlink, unpack, unshift, untie, use, utime, values, vec, wait, waitpid, wantarray, warn, write, y
  • 13. Humberto Ferrer C. 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.
  • 14. Humberto Ferrer C. Variables especiales Existen dos variables muy importantes en Perl las variables anónimas $_ @_ Y sirven para el paso de parámetros.
  • 15. Humberto Ferrer C. Operadores de comparación Comparación Numerico Cadenas Igual == eq No igual != ne Menor que < lt Mayor que > gt Menor o igual <= le Mayor o igual >= ge
  • 16. Humberto Ferrer C. Estructuras de control if/unless print “hola” if(true); unless (false) { print “hola”; } while/until while(true) {print “”}; for for($i = 1; $i <= 10; $i++) { print "$i "; } foreach @a = (1,2,3,4,5); foreach $b (@a) {$b *=3; print $b; }
  • 17. Humberto Ferrer C. Subrutinas Para definir una subrutina o función se utiliza la palabra sub sub suma { $valor0=shift @_; $valor1=shift @_; return $valor1+$valor0; } … print suma(1,2);
  • 18. Humberto Ferrer C. 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.
  • 19. Humberto Ferrer C. 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;
  • 20. Humberto Ferrer C. 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 new { #contructor my $self = {}; $self->{METODOS} = undef; bless($self); return $self; } sub DESTROY {# Destructor. print "Destruido.n"; } sub medotodos { # metoros my $self = shift; if (@_) { $self->{METODOS} = shift; ... } return $self->{METODOS}; } 1;
  • 21. Humberto Ferrer C. 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, AltaVista, Apache, ASP, Audio, Business, CAD , Calendar , CGI , Chemistry , Crypt , DateTime , Email , Event , Excel , Exporter , Gtk …
  • 22. Humberto Ferrer C. 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"; }
  • 23. Humberto Ferrer C. Ventajas Aunque desarrollado originalmente en un entorno UNIX, actualmente hay versiones para casi todos los sistemas operativos ya que esta programado en C.
  • 24. Humberto Ferrer C. 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
  • 25. Humberto Ferrer C. Desventajas Poco tipificado No es recomendado para las siguientes tareas: Sistemas de tiempo real Desarrollo de bajo nivel del sistema operativo que trabajen con controladores Aplicaciones de memoria compartida de procesos o aplicaciones extremadamente largas.
  • 26. Humberto Ferrer C. Algunas aplicaciones Sistemas operativos Perl/Linux http://perllinux.sourceforge.net/ Manipulación de textos Páginas dinámicas CGI Administración UNIX
  • 27. Humberto Ferrer C. Bibliografía Programming Perl, por Larry Wall y otros www.perl.org www.cpam.com