Introducao ao Perl

Propaganda
Introdução ao Perl
Apresentado por:
Mário Silva
[email protected]
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ódigo
my $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ódigo
my @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ódigo
my %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ódigo
my $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 programa
perl helloWorld.pl
• Resultado
– Hello World!!
Hello World
• Código mais comum:
#!/usr/bin/perl
print “Hello World!!\n”;
• Executar
chmod +x helloWorld.pl
./helloWorld.pl
Estruturas de controlo
• If ... elsif .. else
if ($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 for
for (my $i=1; $i<10; $i++) {
print $i;
}
Estruturas de controlo
• Comando for
my @nums = 1..10;
for my $i (@nums) {
print $i;
}
Estruturas de controlo
• Comando for
my @nums = 1..10;
for (@nums) {
print $_; # igual a print;
}
Estruturas de controlo
• Comando while
my $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 while
my $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ões
if ($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 .. else
if ($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ódigo
my $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”;
}
• Output
ola mundo
Referências
• Randal Schwartz, Tom Phoenix, brian d
foy,Learning Perl, 4ª edição, O'Reilly, 2005
Dúvidas
Download