[bcn-pm] Dubte while (eval)
Toni Homedes i Saun
toni a homedes.net
dij jul 30 00:12:20 PDT 2015
Hola JJ,
Para estar seguro lo he vuelto a probar así:
perl -e '$hr = {'A' => 1, 'B' => 2}; print "$a => $b\n" while (($a, $b)
= each $hr)' | head
y va bien, con lo que confirma que `each` acepta referencias a hash. Lo
que da la sensación es de que falle cuando en lugar de una variable uses
un literal: `each {A => ...`
Si no fuera porque no se lo bastante de Perl, parece que fuese un bug de
Perl en que
$hr = {..}; while (each $hr)
va bien y
while (each {...})
va mal.
Toni
El 30/07/15 a les 08:05, JJ Merelo ha escrit:
>
>
> 2015-07-29 14:58 GMT+02:00 Toni Homedes i Saun <toni a homedes.net
> <mailto:toni a homedes.net>>:
>
> Hola Mongers,
>
> Fent un molinet amb Perl m'he trobat el següent:
>
>
> Bé:
> ---
>
> perl -e '%h = ('A' => 1, 'B' => 2); print "$a => $b\n" while (($a,
> $b) = each \%h)' | head
>
> Malament:
> ---------
>
> perl -e 'print "$a => $b\n" while (($a, $b) = each {'A' => 1, 'B' =>
> 2})' | head
>
>
>
> Perquè? Una referència a un hash no és sempre una referència a un hash?
>
>
> Asi a bote pronto, en el de arriba estás cerrando las comillas simples
> antes de la primera A. En el segundo, hum, también. Pero no creo que sea
> eso: en el segundo estás usando una referencia a hash {}; en el primero
> un hash ()
>
> Saludos
>
> JJ
>
>
>
> _______________________________________________
> llista dels Barcelona-pm
> Barcelona-pm a pm.org
> http://mail.pm.org/mailman/listinfo/barcelona-pm
> BCN Perl Mongers: http://barcelona.pm.org
>
Més informació sobre la llista de correu Barcelona-pm