[Cascavel-pm] Idioma muito legal!!

Marco A P D´Andrade mda em embratel.net.br
Sexta Maio 21 07:30:11 CDT 2004


Pessoal,


Para quem teve oportunidade de ler "Effective Perl Programming" esta 
visão fica um pouco mais fácil, ou mesmo algumas partes dentro do 
"Advanced Programming Perl"...

A parte dificil é lembrar bem destes detalhes posteriormente ...


Para tornar-se mais ilustrativo o exemplo, que tal alterar um pouco, 
como fiz ontem para tirar a prova...

#!/usr/local/bin/perl -w

use Data::Dumper;
use strict;

 my ( $top, $x );
  $top->{a}->{b}->{c}->{d}->{e}->{Count} = 0;
  $x = $top;

 my ( $Debug );

  # Para depurar
  printf "  > %s %s\n", 'a', $top->{a};
  printf "  > %s %s\n", 'b', $top->{a}->{b};
  printf "  > %s %s\n", 'c', $top->{a}->{b}->{c};
  printf "  > %s %s\n", 'd', $top->{a}->{b}->{c}->{d};
  printf "  > %s %s\n", 'e', $top->{a}->{b}->{c}->{d}->{e};

  # Para complicar, sem entrar no laco exemplificado
  $Debug->{a}->{top} = $top->{a};
  $Debug->{b}->{top} = $top->{a}->{b};
  $Debug->{c}->{top} = $top->{a}->{b}->{c};
  $Debug->{d}->{top} = $top->{a}->{b}->{c}->{d};
  $Debug->{e}->{top} = $top->{a}->{b}->{c}->{d}->{e};

  foreach ( qw( a b c d e ) ) {
        $x = $x->{$_};
        $Debug->{$_}->{x} = $x;
        printf " %s => %s\n", $_, $x;
  }


  print "Enderecos:\n";
  map {
        printf "  %s : %s = %s\n", $_,
                $Debug->{$_}->{top}, $Debug->{$_}->{x}
     } sort keys %$Debug;

  <>;

  print "Referencias:\n",
        Data::Dumper->Dump( [$Debug] , [qw( Debug )] ),
        '-'x40, "\n";

  exit 0;


PS: Para quem não recorda, ou não sabe, verifiquem na Amazon quem é o 
autor do livro citado ;)


Sds,
Marco Antonio

Gabriel Vieira wrote:

>Tomô?! (rs)
>
>Muito bom isso.. eu, assim como os amigos Nelson e Solli, tb estava com um
>pé atrás.. mas agora... :)
>Isso é quase uma revolução pra mim.. abre mts 'janelas'.
>
>Será que existe alguma referência pra esse tipo de construção?! Ou o rapaz
>(Andy) é fuçador nato? :)
>
>Abraços,
>
>Gabriel Vieira
>
>----- Original Message ----- 
>From: "Nelson Ferraz" <nferraz em phperl.com>
>To: "Cascavel Perl Mongers" <cascavel-pm em mail.pm.org>
>Sent: Thursday, May 20, 2004 6:23 PM
>Subject: Re: [Cascavel-pm] Idioma muito legal!!
>
>
>
>>Luis Campos de Carvalho wrote:
>>
>>>#!/usr/bin/perl
>>># $top eh a raiz da minha "arvore" n-aria...
>>>$top = {count => 0};
>>>$x = $top;
>>>$x = $x->{$_} ||= {} for qw(a b c d e);
>>>
>>>use Data::Dumper;
>>>print Dumper $x;
>>>print Dumper $top;
>>>
>>Wow! :)
>>
>>
>
>
>----------------------------------------------------------------------------
>----
>
>
>_______________________________________________
>Cascavel-pm mailing list
>Cascavel-pm em mail.pm.org
>http://cascavel.pm.org/mailman/listinfo/cascavel-pm
>
>_______________________________________________
>Cascavel-pm mailing list
>Cascavel-pm em mail.pm.org
>http://cascavel.pm.org/mailman/listinfo/cascavel-pm
>
>
>




Mais detalhes sobre a lista de discussão Cascavel-pm