Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Perl
Perl
CC51T Desarrollo de Aplicaciones web
Perl
Practical Extraction and Report Language Creado e implementado por Larry Wall en 1987 Es un lenguaje interpretado Combina caractersticas de Shell, sed, awk, de C y tambin BASIC Muy til para desarrollar de forma rpida Manejo de archivos Funciones de sistema Lenguaje preferidos para el desarrollo de aplicaciones WEB perlmonks.org
Jos Urza Reinoso http://jose.cl
Perl
CC51T Desarrollo de Aplicaciones web
Perl
CC51T Desarrollo de Aplicaciones web
Con use warnings se generan advertencias pero sigue la ejecucin Para el curso siempre deben usar estas lneas
Jos Urza Reinoso http://jose.cl
Perl
CC51T Desarrollo de Aplicaciones web
Sintaxis
Serie de sentencias
No es necesario un main()
Perl
CC51T Desarrollo de Aplicaciones web
Variables
Escalares
my$animal="camel"; my$answer=42; print$animal; print"Theanimalis$animal\n"; print"Thesquareof$answeris",$answer* $answer,"\n";
Perl
CC51T Desarrollo de Aplicaciones web
Variables
Arreglos: representa una lista de valores
my@animals=("camel","llama","owl"); my@numbers=(23,42,69); my@mixed=("camel",42,1.23); print$animals[0];#prints"camel" print$animals[1];#prints"llama" print$mixed[$#mixed]; if(@animals<5){...}#verdaderositienemenos #5elementos @animals[0,1];#retorna("camel","llama"); @animals[0..2];#retorna("camel","llama","owl"); @animals[1..$#animals];#retornatodosexceptoel #primero
Jos Urza Reinoso http://jose.cl
Perl
CC51T Desarrollo de Aplicaciones web
Variables: arreglos
Funciones tiles:
my@sorted=sort@animals; my@backwards=reverse@numbers;
Arreglos especiales:
@ARGV: argumentos que se reciben por lnea de comandos @_: argumentos que recibe una subrutina Mas informacin: perldoc perlvar
Perl
CC51T Desarrollo de Aplicaciones web
Variables: Hashes
Conjunto de pares llave valor
my%fruit_color=("apple","red","banana", "yellow"); my%fruit_color=( apple=>"red", banana=>"yellow", ); $fruit_color{"apple"};#retorna"red" my@fruits=keys%fruit_colors; my@colors=values%fruit_colors;
Perl
CC51T Desarrollo de Aplicaciones web
Sentencias condicionales
if(condition){ }elsif(othercondition){ }else{ } if($zippy){ print"Yow!"; } print"Yow!"if$zippy; print"Wehavenobananas"unless$bananas;
Perl
CC51T Desarrollo de Aplicaciones web
Ciclos
while(condition){ ... } until(condition){ ... } print"LALALA\n"while1;#Quehace? for($i=0;$i<=$max;$i++){ ... } foreach(@array){ print"Thiselementis$_\n"; } print$list[$_]foreach0..$max;
Jos Urza Reinoso http://jose.cl
Perl
CC51T Desarrollo de Aplicaciones web
Operadores y funciones
Aritmticos + addition - subtraction * multiplication / division Comparacin Numrica == equality != inequality < less than > greater than <= less than or equal >= greater than or equal
Comparaciones Strings: eq equality ne inequality lt less than gt greater than le less than or equal ge greater than or equal Operadores Lgicos && and || or ! not
Jos Urza Reinoso http://jose.cl
Perl
CC51T Desarrollo de Aplicaciones web
Archivos
open(my$in,"<","input.txt")ordie"Can'topeninput.txt:$!"; open(my$out,">","output.txt")ordie"Can'topenoutput.txt:$!"; open(my$log,">>","my.log")ordie"Can'topenmy.log:$!"; my$line=<$in>;#leeunalineadelarchivo my@lines=<$in>;#leetodaslaslneasylasdejaenelarreglo while(<$in>){#asignacadalneaa$_ print"leyendolalnea:$_"; } printSTDERR"Thisisyourfinalwarning.\n"; print$out$record; print$log$logmessage; close$inordie"$in:$!";
Perl
CC51T Desarrollo de Aplicaciones web
Expresiones regulares
Una de las grandes potencialidades de Perl
if(/foo/){...}#trueif$_contains"foo" if($a=~/foo/){...}#trueif$acontains"foo" s/foo/bar/;#replacesfoowithbarin$_ $a=~s/foo/bar/;#replacesfoowithbarin$a $a=~s/foo/bar/g;#replacesALLINSTANCES
Perl
CC51T Desarrollo de Aplicaciones web
Expresiones regulares
.asinglecharacter \sawhitespacecharacter(space,tab,newline,...) \Snonwhitespacecharacter \dadigit(09) \Danondigit \wawordcharacter(az,AZ,09,_) \Wanonwordcharacter [aeiou]matchesasinglecharacterinthegivenset [^aeiou]matchesasinglecharacteroutsidethegivenset (foo|bar|baz)matchesanyofthealternativesspecified ^startofstring $endofstring
Perl
CC51T Desarrollo de Aplicaciones web
Expresiones Regulares
*zeroormoreofthepreviousthing +oneormoreofthepreviousthing ?zerooroneofthepreviousthing {3}matchesexactly3ofthepreviousthing {3,6}matchesbetween3and6ofthepreviousthing {3,}matches3ormoreofthepreviousthing /^\d+/stringstartswithoneormoredigits /^$/nothinginthestring(startandendareadjacent) /(\d\s){3}/athreedigits,eachfollowedbyawhitespace character(eg"345") /(a.)+/matchesastringinwhicheveryoddnumbered letterisa(eg"abacadaf") #cicloqueleedesdelaentradaestandareimprimelneas #quenoestnenblanco: while(<>){ nextif/^$/;print; }
Jos Urza Reinoso http://jose.cl
Perl
CC51T Desarrollo de Aplicaciones web
Expresiones regulares
Captura de datos con parntesis
if($email=~/([^@]+)@(.+)/){ print"Usernameis$1\n"; print"Hostnameis$2\n"; }
Ejemplo: hora.pl