[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