Post on 05-Jan-2016
description
Introdução ao PerlApresentado por:
Mário Silva
marricardo@gmail.com
Roadmap
• O que é o Perl
• Perl para iniciantes– Programa “Hello World”– Tipos de dados
• TIMTOWDI– Hello World– Estruturas de controlo– Regex (Regular Expressions)– Funções
O que é o Perl
• Linguagem de programação estável e multiplataforma
• Criada em 1987 por Larry Wall
• Especialmente eficaz no tratamento de Strings
• Permite tempos de desenvolvimento curtos
• Lema do Perl: – There Is More Than One Way to Do It
(TIMTOWDI)
Perl para iniciantes
Hello World
• Código
print 'Hello World!'
• Resultado– Hello World!
IDE
• Eclipse Epic
Tipos de dados
• 3 tipos de variaveis– Escalares
• my $scalar;
– Arrays• my @array;
– Hashes• my %hash;
Escalares
• Códigomy $str;my $num;$str = 'Tomar.pm';$num = 1;print 'O grupo ',$str, ' é o numero ',
$num;
• Output– O grupo Tomar.pm é o numero 1
Arrays
• Códigomy @array;$array[0] = 'Tomar.pm';$array[1] = 1;
print 'O grupo', $array[0],' é o numero ', $array[1];
• Output– O grupo Tomar.pm é o numero 1
Hashes
• Códigomy %hash;$hash{nome} = 'Tomar.pm';$hash{num} = 1;
print 'O grupo ',$hash{nome},' é o numero ',$hash{num};
• Output– O grupo Tomar.pm é o numero 1
O valor undef
• Códigomy $value;if (defined $value) {
print 'está definido';}else {
print 'indefinido';}
• Output– indefinido
TIMTOWDI
Hello World
• Na consola:perl -e 'print "Hello World!!\n"'
• Resultado– Hello World!!
• Conhecido como “one liners”
Hello World
• Ficheiro helloWorld.pl:– Código
print 'Hello World!!”;
• Executar o programaperl helloWorld.pl
• Resultado– Hello World!!
Hello World
• Código mais comum:#!/usr/bin/perl
print “Hello World!!\n”;
• Executarchmod +x helloWorld.pl./helloWorld.pl
Estruturas de controlo
• If ... elsif .. elseif ($esta_a_nevar) {
print “leva a samarra”;}elsif ($esta_a_chover) {
print “leva o guarda chuva”;else {
print “vai de calcoes e t-shirt”;}
Estruturas de controlo
• Comando forfor (my $i=1; $i<10; $i++) {
print $i;}
Estruturas de controlo
• Comando formy @nums = 1..10;for my $i (@nums) {
print $i;}
Estruturas de controlo
• Comando formy @nums = 1..10;for (@nums) {
print $_; # igual a print;}
Estruturas de controlo
• Comando whilemy $counter = 1;while ( 1 ) {
print "Estou em loop infinito";$counter++;if ($counter==6) {
last; # last = java break}
}print 'o contador esta com ', $counter;
• Output– o contador esta com 6
Estruturas de controlo
• Comando whilemy $counter = 1;while ( 1 ) {
print "Estou em loop infinito";last if ++$counter == 6;
}print "o contador esta com ", $counter;
• Output– o contador esta com 6
Estruturas de controlo
• Modificadores de espressõesif ($temp > 20) {
print “Esta calor”;}
• Em vez disso:print “Esta calor” if ($temp > 20);
Estruturas de controlo
• Modificadores de expressão
print “Esta calor if ($temp > 20);print “$_\n” for (1..10);print “$i++\n” while ($i<10);
Estruturas de controlo
• Operador ternário($num == 1) ? print “E igual a 1”
: print “Nao e igual a 1”;
• Outro exemplo:my $size =
($width < 10) ? 'small' :($width < 20) ? 'medium' :($width < 50) ? 'large' :
'extra-large'; #default
Estruturas de controlo
• Comparação com if .. elsif .. elseif ($width < 10)
$size = “small”;} elsif ($width < 20) {
$size = “medium”;} elsif ....
} else {$size = “extra-large”;
}
Regex
• Código:my $texto = 'Ola mundo';print ($texto =~ /ola/);
• Resultado– 1
Regex
• Códigomy $texto = 'Ola mundo';$texto =~ s/mundo/IPT/;
print $texto;
• Resultado– Ola IPT
Funções
• Código&func('ola ', 'mundo');sub func {
my ($param1, $param2) = @_;print “$param1 $param2”;
}
• Outputola mundo
Referências
• Randal Schwartz, Tom Phoenix, brian d foy,Learning Perl, 4ª edição, O'Reilly, 2005
Dúvidas