[Cascavel-pm] vocabulário de referências
Nelson C. T. Ferraz
nferraz em phperl.com
Quinta Outubro 2 09:30:43 CDT 2003
> foreach $chave( keys %hash) {
>
> print "$chave: @{ $hash{$family} }\n";
>
> }
>
> Funciona perfeitamente. O problema é que não entendi o
> "@{ }". O que significa isso?
Você tem um hash como este:
my %arr = (
'chave 1' => [1,2,3,4],
'chave 2' => [5,6,7,8],
'chave 3' => [9,0,1,2]
);
Observe que cada chave aponta não para um valor, mas para uma
referência. Portanto, se você tentar imprimir o valor diretamente, vai
obter algo como:
print $arr{'chave 1'};
ARRAY(0x813aa8c)
Para obter o array, você deve "de-referenciá-lo", o que pode ser feito
através da expressão @{$referencia}
print @{$arr{'chave 1'}};
1234
Em outras palavras, você está dizendo ao Perl para interpretar aquele
valor como um array. (Isto é necessário porque você poderia estar
querendo lidar diretamente com a referência!)
--
[]s
Nelson
________________________________________________________________
Nelson Ferraz
GNU BIS: http://www.gnubis.com.br
PhPerl: http://www.phperl.com
Mais detalhes sobre a lista de discussão Cascavel-pm