mantovani@perl.org.br
São Paulo Perl Monger
Yet Another Perl Conference
Introdução ao Perl
Daniel de O. Mantovani
Aware
mantovani@perl.org.br
São Paulo Perl Monger
Perl
Linguagem ?
Cultura ?
História ?
Comunidade ?
Matemática ?
Filosofia ?
In...
mantovani@perl.org.br
São Paulo Perl Monger
WTF ?
mantovani@perl.org.br
São Paulo Perl Monger
Senhor dos Anéis
O brian d foy disse que ler Senhor Dos Anéis
ajuda a entender...
mantovani@perl.org.br
São Paulo Perl Monger
Filosofia
O André acabou de falar que filosifa ajudou muito
ele a entender lóg...
mantovani@perl.org.br
São Paulo Perl Monger
Faça isso divertido
O Larry Wall programa Perl porque Perl é
divertido, meus a...
mantovani@perl.org.br
São Paulo Perl Monger
Leitura
Programadores lêem muito
Nenhuma outra área no mundo, muda tão
rápido
mantovani@perl.org.br
São Paulo Perl Monger
Smart Questions
Leitura gera dúvida ;)
How To Ask Questions The Smart Way
mantovani@perl.org.br
São Paulo Perl Monger
Perl
free-form language
o/
DWIM
Do What I Mean
o/
/o/
o
mantovani@perl.org.br
São Paulo Perl Monger
Seu Melhor Amigo “Ever”
perldoc
mantovani@perl.org.br
São Paulo Perl Monger
perldoc perl
man perl
mantovani@perl.org.br
São Paulo Perl Monger
A-E-I-O-U
A-E-I-O-U
mantovani@perl.org.br
São Paulo Perl Monger
Perl tem 7 tipos de variáveis
Variáveis
mantovani@perl.org.br
São Paulo Perl Monger
Scalar
Array
Hash
Filehandle
Typeglob
Format
Sub
perldoc perldata
mantovani@perl.org.br
São Paulo Perl Monger
Perl tem 6 tipos de variáveis :D
Variáveis
mantovani@perl.org.br
São Paulo Perl Monger
Scalar
Array
Hash
Filehandle
Typeglob
Format
Sub
perldoc perldata
mantovani@perl.org.br
São Paulo Perl Monger
Scalar
my $var = 'foo'
print “$varn”;
mantovani@perl.org.br
São Paulo Perl Monger
Array
@foo = (1,2,3,4,5,6,7,8,9,10);
@foo = 1 .. 10; #range operator
print $fo...
mantovani@perl.org.br
São Paulo Perl Monger
Hash
%foo = (bar =>1, baz => 2);
print $foo{bar};
$foo{value} = 3;
@foo{1 .. 1...
mantovani@perl.org.br
São Paulo Perl Monger
Filehandle
Descritor de arquivo
open my $filehandle, '<', meuarquivo.txt
open ...
mantovani@perl.org.br
São Paulo Perl Monger
Typeglob
$foo = 1;
@foo = (1 .. 10);
%foo = (1 .. 10);
open foo,'<',arquivo.tx...
mantovani@perl.org.br
São Paulo Perl Monger
Format
Não se usa mais Format
Perl6::Form
$text = form " =====================...
mantovani@perl.org.br
São Paulo Perl Monger
Scope
my
local
our
mantovani@perl.org.br
São Paulo Perl Monger
Subroutines
sub foo {
my $valor = shift || 'vazio';
print “$valorn”
}
@_ #mági...
mantovani@perl.org.br
São Paulo Perl Monger
Chamando
foo(“teste”)
&foo
foo “teste”
&foo(“teste”)
mantovani@perl.org.br
São Paulo Perl Monger
IF
if ( .. ) {}
elsif (..) {}
else {}
print “Tenho uma var” if $var
mantovani@perl.org.br
São Paulo Perl Monger
Given
given($foo) {
when ("foo") {
say '$foo is the string "foo"';
}
when (&co...
mantovani@perl.org.br
São Paulo Perl Monger
Iterators
foreach my $foo (1..10) {
print “$foon”;
}
for (my $i = 0;$i <= 10;$...
mantovani@perl.org.br
São Paulo Perl Monger
grep/map
my @foo = grep {$_ % 2 == 0} 1 .. 10
for(@foo) {
$foo[$i] = $_ if($_ ...
mantovani@perl.org.br
São Paulo Perl Monger
Loop
while(1+1) {
print “O loop ainda nao acaboun”;
}
mantovani@perl.org.br
São Paulo Perl Monger
Context
Perl tem 3 tipos de contexto
Void, Scalar, e List
mantovani@perl.org.br
São Paulo Perl Monger
map { .. } 1 .. 10
&foo
Void
mantovani@perl.org.br
São Paulo Perl Monger
my $foo = 1;
Scalar
mantovani@perl.org.br
São Paulo Perl Monger
Um array é uma lista mas uma lista não é um
array.
List
mantovani@perl.org.br
São Paulo Perl Monger
Você não pode usar métodos modificadores em
uma lista.
push (1,2,3,4,5) #errad...
mantovani@perl.org.br
São Paulo Perl Monger
Ainda lista
my $foo = (1,2,3,4,5);
Retorna sempre o valor mais a direita
my @f...
mantovani@perl.org.br
São Paulo Perl Monger
Intro
perldoc perlintro ;)
mantovani@perl.org.br
São Paulo Perl Monger
:D
Não esqueça, se divirta
mantovani@perl.org.br
São Paulo Perl Monger
Dúvidas ?
sao-paulo.pm.org/lista
irc.perl.org #sao-paulo.pm
Você pode pergunta...
Upcoming SlideShare
Loading in …5
×

Introdução ao perl

1,118 views

Published on

Introdução ao Perl

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,118
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introdução ao perl

  1. 1. mantovani@perl.org.br São Paulo Perl Monger Yet Another Perl Conference Introdução ao Perl Daniel de O. Mantovani Aware
  2. 2. mantovani@perl.org.br São Paulo Perl Monger Perl Linguagem ? Cultura ? História ? Comunidade ? Matemática ? Filosofia ? Inglês ? Física ? Biologia ? Ler Senhor dos Anéis ? Foo ? Bar ?
  3. 3. mantovani@perl.org.br São Paulo Perl Monger WTF ?
  4. 4. mantovani@perl.org.br São Paulo Perl Monger Senhor dos Anéis O brian d foy disse que ler Senhor Dos Anéis ajuda a entender o código fonte do Perl.
  5. 5. mantovani@perl.org.br São Paulo Perl Monger Filosofia O André acabou de falar que filosifa ajudou muito ele a entender lógica.
  6. 6. mantovani@perl.org.br São Paulo Perl Monger Faça isso divertido O Larry Wall programa Perl porque Perl é divertido, meus amigos e eu também.
  7. 7. mantovani@perl.org.br São Paulo Perl Monger Leitura Programadores lêem muito Nenhuma outra área no mundo, muda tão rápido
  8. 8. mantovani@perl.org.br São Paulo Perl Monger Smart Questions Leitura gera dúvida ;) How To Ask Questions The Smart Way
  9. 9. mantovani@perl.org.br São Paulo Perl Monger Perl free-form language o/ DWIM Do What I Mean o/ /o/ o
  10. 10. mantovani@perl.org.br São Paulo Perl Monger Seu Melhor Amigo “Ever” perldoc
  11. 11. mantovani@perl.org.br São Paulo Perl Monger perldoc perl man perl
  12. 12. mantovani@perl.org.br São Paulo Perl Monger A-E-I-O-U A-E-I-O-U
  13. 13. mantovani@perl.org.br São Paulo Perl Monger Perl tem 7 tipos de variáveis Variáveis
  14. 14. mantovani@perl.org.br São Paulo Perl Monger Scalar Array Hash Filehandle Typeglob Format Sub perldoc perldata
  15. 15. mantovani@perl.org.br São Paulo Perl Monger Perl tem 6 tipos de variáveis :D Variáveis
  16. 16. mantovani@perl.org.br São Paulo Perl Monger Scalar Array Hash Filehandle Typeglob Format Sub perldoc perldata
  17. 17. mantovani@perl.org.br São Paulo Perl Monger Scalar my $var = 'foo' print “$varn”;
  18. 18. mantovani@perl.org.br São Paulo Perl Monger Array @foo = (1,2,3,4,5,6,7,8,9,10); @foo = 1 .. 10; #range operator print $foo[-1] print $foo[0]
  19. 19. mantovani@perl.org.br São Paulo Perl Monger Hash %foo = (bar =>1, baz => 2); print $foo{bar}; $foo{value} = 3; @foo{1 .. 10} = 1 .. 10;
  20. 20. mantovani@perl.org.br São Paulo Perl Monger Filehandle Descritor de arquivo open my $filehandle, '<', meuarquivo.txt open FILEHANDLE,'<', meuarquivo.txt my @array = <$fh> {$='';$var=<$fh>} while (my $line = <$fh>){ print $line}
  21. 21. mantovani@perl.org.br São Paulo Perl Monger Typeglob $foo = 1; @foo = (1 .. 10); %foo = (1 .. 10); open foo,'<',arquivo.txt; sub foo { return “hi” }; *foo;
  22. 22. mantovani@perl.org.br São Paulo Perl Monger Format Não se usa mais Format Perl6::Form $text = form " =================================== ", "| NAME | AGE | ID NUMBER |", "|----------+------------+-----------|", "| {<<<<<<} | {||||||||} | {>>>>>>>} |", $name, $age, $ID;
  23. 23. mantovani@perl.org.br São Paulo Perl Monger Scope my local our
  24. 24. mantovani@perl.org.br São Paulo Perl Monger Subroutines sub foo { my $valor = shift || 'vazio'; print “$valorn” } @_ #mágica
  25. 25. mantovani@perl.org.br São Paulo Perl Monger Chamando foo(“teste”) &foo foo “teste” &foo(“teste”)
  26. 26. mantovani@perl.org.br São Paulo Perl Monger IF if ( .. ) {} elsif (..) {} else {} print “Tenho uma var” if $var
  27. 27. mantovani@perl.org.br São Paulo Perl Monger Given given($foo) { when ("foo") { say '$foo is the string "foo"'; } when (&complicated_check) { say 'a complicated check for $foo is true'; } default { die q(I don't know what to do with $foo); }
  28. 28. mantovani@perl.org.br São Paulo Perl Monger Iterators foreach my $foo (1..10) { print “$foon”; } for (my $i = 0;$i <= 10;$i++) { print “$in”; } my @foo = grep {$_ % 2 == 0} 1 .. 10 my %hash = map {} print for 1 .. 10;
  29. 29. mantovani@perl.org.br São Paulo Perl Monger grep/map my @foo = grep {$_ % 2 == 0} 1 .. 10 for(@foo) { $foo[$i] = $_ if($_ % 2 == 0); } %hash = map { get_a_key_for($_) => $_ } @array; %hash = (); foreach (@array) { $hash{get_a_key_for($_)} = $_; }
  30. 30. mantovani@perl.org.br São Paulo Perl Monger Loop while(1+1) { print “O loop ainda nao acaboun”; }
  31. 31. mantovani@perl.org.br São Paulo Perl Monger Context Perl tem 3 tipos de contexto Void, Scalar, e List
  32. 32. mantovani@perl.org.br São Paulo Perl Monger map { .. } 1 .. 10 &foo Void
  33. 33. mantovani@perl.org.br São Paulo Perl Monger my $foo = 1; Scalar
  34. 34. mantovani@perl.org.br São Paulo Perl Monger Um array é uma lista mas uma lista não é um array. List
  35. 35. mantovani@perl.org.br São Paulo Perl Monger Você não pode usar métodos modificadores em uma lista. push (1,2,3,4,5) #errado print ((1,2,3,4,5)[0]) #primeiro elemento Contexto de lista
  36. 36. mantovani@perl.org.br São Paulo Perl Monger Ainda lista my $foo = (1,2,3,4,5); Retorna sempre o valor mais a direita my @foo = 1 .. 10; $foo = @foo; Retorna o tanto de elementos do array
  37. 37. mantovani@perl.org.br São Paulo Perl Monger Intro perldoc perlintro ;)
  38. 38. mantovani@perl.org.br São Paulo Perl Monger :D Não esqueça, se divirta
  39. 39. mantovani@perl.org.br São Paulo Perl Monger Dúvidas ? sao-paulo.pm.org/lista irc.perl.org #sao-paulo.pm Você pode perguntar aqui ^

×