300 likes | 404 Views
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.
E N D
Introdução ao PerlApresentado por:Mário Silvamarricardo@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)
Hello World Códigoprint '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
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 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ões if ($temp > 20) { print “Esta calor”; } Em vez disso: print “Esta calor” if ($temp > 20);
Estruturas de controlo Modificadores de expressãoprint “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