[SP-pm] Dúvida sobre como "jogar" um array dentro de um hash.

"Flávio R. Lopes" flavio.lopes at links.inf.br
Wed Jul 21 21:06:38 PDT 2010


Humm...muito legal!....Já guardei esta dica na minha "caixinha de 
ferramentas" !

Abraço!

Em 22-07-2010 00:02, Eden Cardim escreveu:
> 2010/7/21 "Flávio R. Lopes"<flavio.lopes em links.inf.br>:
>    
>>> @temp{@array1, @array2} = 1;
>>> @juncao = keys %temp;
>>>
>>>        
>> Putz, me desculpe Eden, mas ainda não estou neste nível!
>> Você poderia "trocar em miúdos" este seu exemplo?
>>      
> Mapear um array para as chaves de um hash é um truque para eliminar
> repetições, e a forma mais prática em termos de código pra fazer isso
> é se aproveitar de uma feature do perl chamada "auto-vivificação" e
> outra feature chamada "slice". Basicamente, a auto-vivificação
> significa que se você fizer uma atribuição a um elemento inexistente
> de um hash ou um array, o elemento é criado automaticamente para você.
> Um slice é um "pedaço" de um array ou hash, no sentido de que vários
> elementos da sua escolha podem ser atribuídos ao mesmo tempo. Assim,
> @temp{'foo', 'bar', 'baz', 'foo'} = (1, 2, 3, 4); equivale a
> $temp{foo} = 1; $temp{bar} = 2; $temp{baz} = 3; $temp{foo} = 4;
> Observa que o elemento repetido foi re-atribuído, então na segunda vez
> a chave já existe e o valor é substituído isso evita a criação de
> elementos repetidos. Note também que o valor atribuído não interessa,
> só queremos criar mesmo as chaves, a atribuição ("= 1") só está lá
> para satisfazer o analisador sintático.
>
>    



More information about the SaoPaulo-pm mailing list