[SP-pm] Golf Time!

Luis Motta Campos luismottacampos em yahoo.co.uk
Terça Maio 8 04:17:40 PDT 2007


On May 8, 2007, at 12:38 PM, Solli Honorio wrote:
> On 5/7/07, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:    
> Gente, um problema simples, para uma partida de Golf longa:
>
>   Gerar uma referência para uma array contendo N elementos
> idênticos, onde 1 < N < INF
>
>   # meu elemento é "1", por simplicidade:
>   push @$_, 1 foreach ( 1..$N );
>
> Luis, testei este código e não tive nenhum valor em @$_ ou $_.  
> Utilizando uma variável qualquer (@v), por exemplo, o retorno é um  
> array, e utilizando um scalar @{$v} o retorno é uma referência para  
> 20 array, cada um com 1 elemento.
>
> Eu estou comendo bola em alguma coisa ?


   Parece que quem comeu bola fui eu:

lcampos em devil$ perl -de1

Loading DB routines from perl5db.pl version 1.28
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(-e:1):   1
DB<1> use Data::Dumper
DB<2> $N = 5
DB<3> push @$_, 1 foreach ( 1..$N );
DB<4> print Dumper \@$_
$VAR1 = [];
DB<5> push @$a, 1 foreach ( 1..$N );
DB<6> print Dumper \@$a
$VAR1 = [
           1,
           1,
           1,
           1,
           1
         ];
DB<7>

   Como você pode ver, parece que usar $_ não foi uma boa idéia.
   Mas o código funciona, se você oferecer uma variável para ele que  
não seja LOCALIZADA dentro do foreach.

   Captou o problema? ;-)
   Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}




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