SlideShare uma empresa Scribd logo
1 de 92
Perl
Moderno.
Breno G. de Oliveira   garu@cpan.org
Bruno C. Buss          bbuss@cpan.org




                                        Perl Moderno
Dia #2


         Perl Moderno
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
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 duplas
sempre que julgar necessário

                        Perl Moderno
Executando
programas 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 separar
argumentos 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 longo
para 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 suas
expressõ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?



                         Perl Moderno
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ÁVEL TEMPORÁRIA
  (nem escovar bits com XOR)?


                          Perl Moderno
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;




                             Perl Moderno
my @numeros = ( 2, 40, 10, 1 );


my @ordenado = sort { $b <=> $a }
                   @numeros;




                             Perl Moderno
my @numeros = ( 'um', 'dois' );


my @ordenado = sort @numeros;




                             Perl Moderno
my @numeros = ( 'um', 'dois' );


my @ordenado = sort { $a cmp $b }
                   @numeros;




                             Perl Moderno
my @numeros = ( 'um', 'dois' );


my @ordenado = sort { $b cmp $a }
                   @numeros;




                             Perl Moderno
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;




                             Perl Moderno
my @numeros = ( 2, 40, 10, 1 );


my $primeiro = shift @numeros;

my $ultimo = pop @numeros;




                             Perl Moderno
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

                          Perl Moderno
any       none              after
                 before
      minmax
                           notall
all       pairwise

      use List::MoreUtils
true                 first_index
        last_index
                            distinct
  false          mesh
                              Perl Moderno
Hashes



         Perl Moderno
my %stones = (
   voz      =>   'Jagger',
   guitarra =>   'Richards',
   baixo    =>   'Wyman',
   bateria =>    'Watts',
);



                         Perl Moderno
my %stones = (
   voz      =>   'Jagger',
   guitarra =>   'Richards',
   baixo    =>   'Wyman',
   bateria =>    'Watts',
);



                         Perl Moderno
my %stones = (
   voz      =>   'Jagger',
   guitarra =>   'Richards',
   baixo    =>   'Wyman',
   bateria =>    'Watts',
);



                         Perl Moderno
my %stones = (
   'voz'       =>   'Jagger',
   'guitarra' =>    'Richards',
   'baixo'     =>   'Wyman',
   'bateria' =>     'Watts',
);



                         Perl Moderno
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 };
}


Jagger
Richards


                                   Perl Moderno
foreach my $chave ( keys %stones ) {
    say $stones{ $chave };
}

Richards
Watts
Wyman
Jagger

                                Perl Moderno
foreach my $chave ( sort keys %stones ) {
    say $stones{ $chave };
}

Wyman
Watts
Richards
Jagger

                                Perl Moderno
foreach my $valor ( sort values %stones ) {
    say $valor;
}

Jagger
Richards
Watts
Wyman

                                 Perl Moderno
while ( my ($k, $v) = each %stones ) {
    say “chave $k possui valor $v”;
}

chave   guitarra possui valor Richards
chave   bateria possui valor Watts
chave   baixo possui valor Wyman
chave   voz possui valor Jagger

                                   Perl Moderno
Exercícios!



              Perl Moderno

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Php 02 Primeiros Passos
Php 02 Primeiros PassosPhp 02 Primeiros Passos
Php 02 Primeiros Passos
 
Python Class
Python ClassPython Class
Python Class
 
Shell script
Shell scriptShell script
Shell script
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHP
 
Orientação a Objetos em PHP
Orientação a Objetos em PHPOrientação a Objetos em PHP
Orientação a Objetos em PHP
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
 
JasperReports
JasperReportsJasperReports
JasperReports
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)
 
Palestra python
Palestra pythonPalestra python
Palestra python
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell Script
 
LabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - FunçõesLabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - Funções
 
Expressões Regulares e Python
Expressões Regulares e PythonExpressões Regulares e Python
Expressões Regulares e Python
 
Arrays PHP - Criação de sites II
Arrays PHP - Criação de sites IIArrays PHP - Criação de sites II
Arrays PHP - Criação de sites II
 
Introdução ao Ruby
Introdução ao RubyIntrodução ao Ruby
Introdução ao Ruby
 
Minicurso Shell Script
Minicurso Shell ScriptMinicurso Shell Script
Minicurso Shell Script
 
Slides
SlidesSlides
Slides
 
12 aula - shell script-2015
12   aula - shell script-201512   aula - shell script-2015
12 aula - shell script-2015
 
Redes Neurais com PHP
Redes Neurais com PHPRedes Neurais com PHP
Redes Neurais com PHP
 
Poo com php
Poo com phpPoo com php
Poo com php
 

Semelhante a Perl Moderno, dia2

Semelhante a Perl Moderno, dia2 (20)

PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)
 
10 Boas Práticas de Programação
10 Boas Práticas de Programação10 Boas Práticas de Programação
10 Boas Práticas de Programação
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Aula2
Aula2Aula2
Aula2
 
Revisao php
Revisao phpRevisao php
Revisao php
 
LabMM4 (T14 - 12/13) - Arrays
LabMM4 (T14 - 12/13) - ArraysLabMM4 (T14 - 12/13) - Arrays
LabMM4 (T14 - 12/13) - Arrays
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 
Curso de PHP - Arrays
Curso de PHP - ArraysCurso de PHP - Arrays
Curso de PHP - Arrays
 
Strings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPStrings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHP
 
Php
PhpPhp
Php
 
Ruby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanosRuby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanos
 
Strings em php
Strings em phpStrings em php
Strings em php
 
Aprendendo ruby
Aprendendo rubyAprendendo ruby
Aprendendo ruby
 
Palestra de PDO
Palestra de PDOPalestra de PDO
Palestra de PDO
 
apostila.pdf
apostila.pdfapostila.pdf
apostila.pdf
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
LabMM4 (T15 - 12/13) - Arrays
LabMM4 (T15 - 12/13) - ArraysLabMM4 (T15 - 12/13) - Arrays
LabMM4 (T15 - 12/13) - Arrays
 
Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação Ruby
 
Introdução ao PHP Parte 2
Introdução ao PHP Parte 2Introdução ao PHP Parte 2
Introdução ao PHP Parte 2
 
Aula 4 php
Aula 4 phpAula 4 php
Aula 4 php
 

Mais de garux

Introdução ao Perl 6
Introdução ao Perl 6Introdução ao Perl 6
Introdução ao Perl 6garux
 
Descobrindo a linguagem Perl
Descobrindo a linguagem PerlDescobrindo a linguagem Perl
Descobrindo a linguagem Perlgarux
 
Communities - Perl edition (RioJS)
Communities - Perl edition (RioJS)Communities - Perl edition (RioJS)
Communities - Perl edition (RioJS)garux
 
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensa
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensaSeja um Perl Core Hacker - é (muito) mais fácil do que você pensa
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensagarux
 
Game Development with SDL and Perl
Game Development with SDL and PerlGame Development with SDL and Perl
Game Development with SDL and Perlgarux
 
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moose
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao MooseOrientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moose
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moosegarux
 
Perl Quiz 2009 (YAPC::BR)
Perl Quiz 2009 (YAPC::BR)Perl Quiz 2009 (YAPC::BR)
Perl Quiz 2009 (YAPC::BR)garux
 
Jogos em Perl
Jogos em PerlJogos em Perl
Jogos em Perlgarux
 
Logging e depuração enterprise-level com Log4perl
Logging e depuração enterprise-level com Log4perlLogging e depuração enterprise-level com Log4perl
Logging e depuração enterprise-level com Log4perlgarux
 
Novidades no Perl 5.10
Novidades no Perl 5.10Novidades no Perl 5.10
Novidades no Perl 5.10garux
 
Desenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de ComandoDesenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de Comandogarux
 

Mais de garux (11)

Introdução ao Perl 6
Introdução ao Perl 6Introdução ao Perl 6
Introdução ao Perl 6
 
Descobrindo a linguagem Perl
Descobrindo a linguagem PerlDescobrindo a linguagem Perl
Descobrindo a linguagem Perl
 
Communities - Perl edition (RioJS)
Communities - Perl edition (RioJS)Communities - Perl edition (RioJS)
Communities - Perl edition (RioJS)
 
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensa
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensaSeja um Perl Core Hacker - é (muito) mais fácil do que você pensa
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensa
 
Game Development with SDL and Perl
Game Development with SDL and PerlGame Development with SDL and Perl
Game Development with SDL and Perl
 
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moose
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao MooseOrientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moose
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moose
 
Perl Quiz 2009 (YAPC::BR)
Perl Quiz 2009 (YAPC::BR)Perl Quiz 2009 (YAPC::BR)
Perl Quiz 2009 (YAPC::BR)
 
Jogos em Perl
Jogos em PerlJogos em Perl
Jogos em Perl
 
Logging e depuração enterprise-level com Log4perl
Logging e depuração enterprise-level com Log4perlLogging e depuração enterprise-level com Log4perl
Logging e depuração enterprise-level com Log4perl
 
Novidades no Perl 5.10
Novidades no Perl 5.10Novidades no Perl 5.10
Novidades no Perl 5.10
 
Desenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de ComandoDesenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de Comando
 

Perl Moderno, dia2

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