Introdução ao Perl Apresentado por: Mário Silva marricardo@gmail

Post on 05-Jan-2016

21 views 2 download

description

Introdução ao Perl Apresentado 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. - PowerPoint PPT Presentation

Transcript of Introdução ao Perl Apresentado por: Mário Silva marricardo@gmail

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