PerlModerno.Breno G. de Oliveira   garu@cpan.orgBruno C. Buss          bbuss@cpan.org                                     ...
Dia #2         Perl Moderno
Revisão    . Perl    . Variáveis escalares    . Manipulação de números    . Manipulação de strings    . Escrever na tela  ...
Strings, revisitadas                 Perl Moderno
my $string = usando aspas;                         Perl Moderno
my $string = usando aspas;                         Perl Moderno
my $string = usando aspas;                         Perl Moderno
my $string = usando aspas;                          Perl Moderno
my $string = q{usando aspas};                        Perl Moderno
my $string = q|usando aspas|;                         Perl Moderno
utilize q{} para aspas simples  e qq{} para aspas duplassempre que julgar necessário                        Perl Moderno
Executandoprogramas externos               Perl Moderno
my $saida = `./outroprog`;                       Perl Moderno
my $saida = qx{./outroprog};                      Perl Moderno
my $saida = qx./outroprog;                       Perl Moderno
exec ./outroprog;                      Perl Moderno
system ./outroprog;                    Perl Moderno
system ( ./outroprog ) == 0   or die erro de execução;                         Perl Moderno
use autodie;system ./outroprog;                    Perl Moderno
use vírgulas para separarargumentos de programas        externos                     Perl Moderno
Arrays         Perl Moderno
my @lista = ( 1, 2, 3);                          Perl Moderno
my @lista = ( 1, abc, $nome );                         Perl Moderno
my @lista = ( 1 .. 100 );                            Perl Moderno
my @lista = ( a .. z );                              Perl Moderno
my @herculoides = (      Igoo,      Tundro,      Zok,      Gloop,      Gleep,);                      Perl Moderno
my @herculoides = (      Igoo,      Tundro,      Zok,      Gloop,      Gleep,);                      Perl Moderno
coloque vírgula após o último elemento de um array longopara facilitar novas inclusões                        Perl Moderno
my @numeros = ( um, dois, três );                                  Perl Moderno
my @numeros = qw( um dois três );                             Perl Moderno
Manipulando arrays               Perl Moderno
my @numeros = qw( um dois três );                             Perl Moderno
my @numeros = qw( um dois três );say $numeros[0];   # um                             Perl Moderno
my @numeros = qw( um dois três );say $numeros[-1];   # três                               Perl Moderno
my @numeros = qw( um dois três );$numeros[9] = 42;                             Perl Moderno
my @numeros = qw( um dois três );$numeros[9] = 42;   # autovivificação                              Perl Moderno
foreach my $i ( 1, 2, 3 ) {   say $i;}                              Perl Moderno
foreach my $i ( @numeros ) {   say $i;}                        Perl Moderno
foreach ( @numeros ) {   say;}                         Perl Moderno
foreach my $i ( 1 .. @numeros ) {   say $numeros[$i - 1];}                          Perl Moderno
foreach my $i ( 0 .. $#numeros ) {   say $numeros[$i];}                          Perl Moderno
die “elementos insuficientes”    unless @itens > 3;                          Perl Moderno
em Perl, o contexto de suasexpressões define o resultado                       Perl Moderno
my @linguagens = qw( Perl C++ );say @linguagens;say scalar @linguagens;                          Perl Moderno
my @linguagens = qw( Perl C++ );say “@linguagens”;say scalar @linguagens;                          Perl Moderno
use autodie;open my $fh, <, arquivo.txt;while ( my $linha = <$fh> ) {  ...}close $fh;                          Perl Moderno
use autodie;open my $fh, <, arquivo.txt;my @linhas = <$fh>;close $fh;                          Perl Moderno
pergunta!      my $um    = 10;      my $outro = 99;   como passar o valor de$um para $outro, e vice-versa?                ...
pergunta!my $um    = 10;my $outro = 99;my $temp = $um;$um = $outro;$outro = $temp;                  Perl Moderno
desafio!      my $um    = 10;      my $outro = 99;     como passar o valor de $um para $outro, e vice-versa,SEM USAR VARIÁ...
desafio!my $um    = 10;my $outro = 99;($um, $outro) = ($outro, $um);                        Perl Moderno
my @numeros = ( 2, 40, 10, 1 );my @invertido = reverse @numeros;                             Perl Moderno
my @numeros = ( 2, 40, 10, 1 );my @ordenado = sort @numeros;                             Perl Moderno
my @numeros = ( 2, 40, 10, 1 );my @ordenado = sort { $a <=> $b }                   @numeros;                             P...
my @numeros = ( 2, 40, 10, 1 );my @ordenado = sort { $b <=> $a }                   @numeros;                             P...
my @numeros = ( um, dois );my @ordenado = sort @numeros;                             Perl Moderno
my @numeros = ( um, dois );my @ordenado = sort { $a cmp $b }                   @numeros;                             Perl ...
my @numeros = ( um, dois );my @ordenado = sort { $b cmp $a }                   @numeros;                             Perl ...
my @numeros = ( 2, 40, 10, 1 );my $junto = join :, @numeros;                             Perl Moderno
my @numeros = ( 2, 40, 10, 1 );my $junto = join :, @numeros;my @separado = split /:/, $junto;                             ...
my @numeros = ( 2, 40, 10, 1 );my $primeiro = shift @numeros;my $ultimo = pop @numeros;                             Perl M...
my @numeros = ( 2, 40, 10, 1 );unshift @numeros, $primeiro;push @numeros, $ultimo;                             Perl Moderno
my @numeros = ( 2, 40, 10, 1 );splice @numeros, $pos, $n, @outros;                             Perl Moderno
my @numeros = ( 2, 40, 10, 1 );splice @numeros, 1, 1;                             Perl Moderno
my @numeros = ( 2, 40, 10, 1 );delete $numeros[1];                             Perl Moderno
my @numeros = ( 2, 40, 10, 1 );my @pequenos =   grep { $_ < 10 } @numeros;                             Perl Moderno
my @nomes = qw( igoo tundro zok );my @filtrados = map { ucfirst } @nomes;                               Perl Moderno
minstr           max     min          maxstr         use List::Util first          shuffle         sum           reduce   ...
any       none              after                 before      minmax                           notallall       pairwise   ...
Hashes         Perl Moderno
my %stones = (   voz      =>   Jagger,   guitarra =>   Richards,   baixo    =>   Wyman,   bateria =>    Watts,);          ...
my %stones = (   voz      =>   Jagger,   guitarra =>   Richards,   baixo    =>   Wyman,   bateria =>    Watts,);          ...
my %stones = (   voz      =>   Jagger,   guitarra =>   Richards,   baixo    =>   Wyman,   bateria =>    Watts,);          ...
my %stones = (   voz       =>   Jagger,   guitarra =>    Richards,   baixo     =>   Wyman,   bateria =>     Watts,);      ...
Manipulando hashes               Perl Moderno
say $stones{voz};                      Perl Moderno
say $stones{voz};Jagger                      Perl Moderno
if ($ano > 1990) {    $stones{baixo} = Jones;}                          Perl Moderno
if ($ano > 1990) {    $stones{baixo} = Jones;}delete $stones{baixo};                           Perl Moderno
if ( exists $stones{teclado} ) {    say Stewart ou Leavell?;}                          Perl Moderno
my @chaves = keys %stones;                      Perl Moderno
my @chaves = keys %stones;say “@chaves”;guitarra bateria baixo voz                         Perl Moderno
my @valores = values %stones;                      Perl Moderno
my @valores = values %stones;say “@valores”;Richards Watts Wyman Jagger                      Perl Moderno
my $chave = voz;say $stones{ $chave };                         Perl Moderno
my $chave = voz;say $stones{ $chave };Jagger                         Perl Moderno
foreach my $chave ( voz, guitarra ) {    say $stones{ $chave };}JaggerRichards                                   Perl Mode...
foreach my $chave ( keys %stones ) {    say $stones{ $chave };}RichardsWattsWymanJagger                                Per...
foreach my $chave ( sort keys %stones ) {    say $stones{ $chave };}WymanWattsRichardsJagger                              ...
foreach my $valor ( sort values %stones ) {    say $valor;}JaggerRichardsWattsWyman                                 Perl M...
while ( my ($k, $v) = each %stones ) {    say “chave $k possui valor $v”;}chave   guitarra possui valor Richardschave   ba...
Exercícios!              Perl Moderno
Upcoming SlideShare
Loading in …5
×

Perl Moderno, dia2

1,819 views

Published on

Curso de verão para alunos de graduação e pós-graduação da UFRJ

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

No Downloads
Views
Total views
1,819
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Perl Moderno, dia2

  1. 1. PerlModerno.Breno G. de Oliveira garu@cpan.orgBruno C. Buss bbuss@cpan.org Perl Moderno
  2. 2. Dia #2 Perl Moderno
  3. 3. Revisão . Perl . Variáveis escalares . Manipulação de números . Manipulação de strings . Escrever na tela . Ler do teclado . Ler de arquivos Perl Moderno
  4. 4. Strings, revisitadas Perl Moderno
  5. 5. my $string = usando aspas; Perl Moderno
  6. 6. my $string = usando aspas; Perl Moderno
  7. 7. my $string = usando aspas; Perl Moderno
  8. 8. my $string = usando aspas; Perl Moderno
  9. 9. my $string = q{usando aspas}; Perl Moderno
  10. 10. my $string = q|usando aspas|; Perl Moderno
  11. 11. utilize q{} para aspas simples e qq{} para aspas duplassempre que julgar necessário Perl Moderno
  12. 12. Executandoprogramas externos Perl Moderno
  13. 13. my $saida = `./outroprog`; Perl Moderno
  14. 14. my $saida = qx{./outroprog}; Perl Moderno
  15. 15. my $saida = qx./outroprog; Perl Moderno
  16. 16. exec ./outroprog; Perl Moderno
  17. 17. system ./outroprog; Perl Moderno
  18. 18. system ( ./outroprog ) == 0 or die erro de execução; Perl Moderno
  19. 19. use autodie;system ./outroprog; Perl Moderno
  20. 20. use vírgulas para separarargumentos de programas externos Perl Moderno
  21. 21. Arrays Perl Moderno
  22. 22. my @lista = ( 1, 2, 3); Perl Moderno
  23. 23. my @lista = ( 1, abc, $nome ); Perl Moderno
  24. 24. my @lista = ( 1 .. 100 ); Perl Moderno
  25. 25. my @lista = ( a .. z ); Perl Moderno
  26. 26. my @herculoides = ( Igoo, Tundro, Zok, Gloop, Gleep,); Perl Moderno
  27. 27. my @herculoides = ( Igoo, Tundro, Zok, Gloop, Gleep,); Perl Moderno
  28. 28. coloque vírgula após o último elemento de um array longopara facilitar novas inclusões Perl Moderno
  29. 29. my @numeros = ( um, dois, três ); Perl Moderno
  30. 30. my @numeros = qw( um dois três ); Perl Moderno
  31. 31. Manipulando arrays Perl Moderno
  32. 32. my @numeros = qw( um dois três ); Perl Moderno
  33. 33. my @numeros = qw( um dois três );say $numeros[0]; # um Perl Moderno
  34. 34. my @numeros = qw( um dois três );say $numeros[-1]; # três Perl Moderno
  35. 35. my @numeros = qw( um dois três );$numeros[9] = 42; Perl Moderno
  36. 36. my @numeros = qw( um dois três );$numeros[9] = 42; # autovivificação Perl Moderno
  37. 37. foreach my $i ( 1, 2, 3 ) { say $i;} Perl Moderno
  38. 38. foreach my $i ( @numeros ) { say $i;} Perl Moderno
  39. 39. foreach ( @numeros ) { say;} Perl Moderno
  40. 40. foreach my $i ( 1 .. @numeros ) { say $numeros[$i - 1];} Perl Moderno
  41. 41. foreach my $i ( 0 .. $#numeros ) { say $numeros[$i];} Perl Moderno
  42. 42. die “elementos insuficientes” unless @itens > 3; Perl Moderno
  43. 43. em Perl, o contexto de suasexpressões define o resultado Perl Moderno
  44. 44. my @linguagens = qw( Perl C++ );say @linguagens;say scalar @linguagens; Perl Moderno
  45. 45. my @linguagens = qw( Perl C++ );say “@linguagens”;say scalar @linguagens; Perl Moderno
  46. 46. use autodie;open my $fh, <, arquivo.txt;while ( my $linha = <$fh> ) { ...}close $fh; Perl Moderno
  47. 47. use autodie;open my $fh, <, arquivo.txt;my @linhas = <$fh>;close $fh; Perl Moderno
  48. 48. pergunta! my $um = 10; my $outro = 99; como passar o valor de$um para $outro, e vice-versa? Perl Moderno
  49. 49. pergunta!my $um = 10;my $outro = 99;my $temp = $um;$um = $outro;$outro = $temp; Perl Moderno
  50. 50. desafio! my $um = 10; my $outro = 99; como passar o valor de $um para $outro, e vice-versa,SEM USAR VARIÁVEL TEMPORÁRIA (nem escovar bits com XOR)? Perl Moderno
  51. 51. desafio!my $um = 10;my $outro = 99;($um, $outro) = ($outro, $um); Perl Moderno
  52. 52. my @numeros = ( 2, 40, 10, 1 );my @invertido = reverse @numeros; Perl Moderno
  53. 53. my @numeros = ( 2, 40, 10, 1 );my @ordenado = sort @numeros; Perl Moderno
  54. 54. my @numeros = ( 2, 40, 10, 1 );my @ordenado = sort { $a <=> $b } @numeros; Perl Moderno
  55. 55. my @numeros = ( 2, 40, 10, 1 );my @ordenado = sort { $b <=> $a } @numeros; Perl Moderno
  56. 56. my @numeros = ( um, dois );my @ordenado = sort @numeros; Perl Moderno
  57. 57. my @numeros = ( um, dois );my @ordenado = sort { $a cmp $b } @numeros; Perl Moderno
  58. 58. my @numeros = ( um, dois );my @ordenado = sort { $b cmp $a } @numeros; Perl Moderno
  59. 59. my @numeros = ( 2, 40, 10, 1 );my $junto = join :, @numeros; Perl Moderno
  60. 60. my @numeros = ( 2, 40, 10, 1 );my $junto = join :, @numeros;my @separado = split /:/, $junto; Perl Moderno
  61. 61. my @numeros = ( 2, 40, 10, 1 );my $primeiro = shift @numeros;my $ultimo = pop @numeros; Perl Moderno
  62. 62. my @numeros = ( 2, 40, 10, 1 );unshift @numeros, $primeiro;push @numeros, $ultimo; Perl Moderno
  63. 63. my @numeros = ( 2, 40, 10, 1 );splice @numeros, $pos, $n, @outros; Perl Moderno
  64. 64. my @numeros = ( 2, 40, 10, 1 );splice @numeros, 1, 1; Perl Moderno
  65. 65. my @numeros = ( 2, 40, 10, 1 );delete $numeros[1]; Perl Moderno
  66. 66. my @numeros = ( 2, 40, 10, 1 );my @pequenos = grep { $_ < 10 } @numeros; Perl Moderno
  67. 67. my @nomes = qw( igoo tundro zok );my @filtrados = map { ucfirst } @nomes; Perl Moderno
  68. 68. minstr max min maxstr use List::Util first shuffle sum reduce Perl Moderno
  69. 69. any none after before minmax notallall pairwise use List::MoreUtilstrue first_index last_index distinct false mesh Perl Moderno
  70. 70. Hashes Perl Moderno
  71. 71. my %stones = ( voz => Jagger, guitarra => Richards, baixo => Wyman, bateria => Watts,); Perl Moderno
  72. 72. my %stones = ( voz => Jagger, guitarra => Richards, baixo => Wyman, bateria => Watts,); Perl Moderno
  73. 73. my %stones = ( voz => Jagger, guitarra => Richards, baixo => Wyman, bateria => Watts,); Perl Moderno
  74. 74. my %stones = ( voz => Jagger, guitarra => Richards, baixo => Wyman, bateria => Watts,); Perl Moderno
  75. 75. Manipulando hashes Perl Moderno
  76. 76. say $stones{voz}; Perl Moderno
  77. 77. say $stones{voz};Jagger Perl Moderno
  78. 78. if ($ano > 1990) { $stones{baixo} = Jones;} Perl Moderno
  79. 79. if ($ano > 1990) { $stones{baixo} = Jones;}delete $stones{baixo}; Perl Moderno
  80. 80. if ( exists $stones{teclado} ) { say Stewart ou Leavell?;} Perl Moderno
  81. 81. my @chaves = keys %stones; Perl Moderno
  82. 82. my @chaves = keys %stones;say “@chaves”;guitarra bateria baixo voz Perl Moderno
  83. 83. my @valores = values %stones; Perl Moderno
  84. 84. my @valores = values %stones;say “@valores”;Richards Watts Wyman Jagger Perl Moderno
  85. 85. my $chave = voz;say $stones{ $chave }; Perl Moderno
  86. 86. my $chave = voz;say $stones{ $chave };Jagger Perl Moderno
  87. 87. foreach my $chave ( voz, guitarra ) { say $stones{ $chave };}JaggerRichards Perl Moderno
  88. 88. foreach my $chave ( keys %stones ) { say $stones{ $chave };}RichardsWattsWymanJagger Perl Moderno
  89. 89. foreach my $chave ( sort keys %stones ) { say $stones{ $chave };}WymanWattsRichardsJagger Perl Moderno
  90. 90. foreach my $valor ( sort values %stones ) { say $valor;}JaggerRichardsWattsWyman Perl Moderno
  91. 91. while ( my ($k, $v) = each %stones ) { say “chave $k possui valor $v”;}chave guitarra possui valor Richardschave bateria possui valor Wattschave baixo possui valor Wymanchave voz possui valor Jagger Perl Moderno
  92. 92. Exercícios! Perl Moderno

×