[Cascavel-pm] vocabulário de referências
Flavio S. Glock
fglock em pucrs.br
Quinta Outubro 2 08:29:57 CDT 2003
Alceu R. de Freitas Jr. wrote:
>
> Olá Srs.,
>
> Imagine que criei um hash, e que cada chave faça
> referência para um array anônimo com 4 posições. Eu
> quero imprimir cada chave, e todas as posições dessa
> chave.
>
> Consultando perldoc perldsc:
>
> foreach $chave( keys %hash) {
>
> print "$chave: @{ $hash{$family} }\n";
>
> }
>
> Funciona perfeitamente. O problema é que não entendi o
> "@{ }". O que significa isso? Um loop? Como a
> referência aponta para um array, não seria mais
> natural escrever "@[ ]" ?
Alceu:
Quando se trata de estruturas de dados, o Perl utiliza {} em vez de
parênteses, porque os parenteses são usados para identificar funcões.
Leia isto bem devagar, porque é meio complicado:
@ar transforma o conteúdo do array 'ar' em uma lista
@{ar} faz a mesma coisa - transforma o conteúdo do array 'ar' em uma
lista
[ 1, 2 ] é utilizado para transformar uma lista em um array anônimo.
@{[ 1, 2 ]} transforma uma lista em array anônimo, e o conteúdo do
array anônimo de novo para lista.
@[ 1, 2 ] não existe, está escrito errado.
@{ $hash{$family} } interpreta o conteúdo de $hash{$family} como sendo
um array, e transforma o resultado em uma lista.
- Flavio S. Glock
Mais detalhes sobre a lista de discussão Cascavel-pm