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

Thiago Glauco Sanchez thiagoglauco at ticursos.net
Wed Jul 21 20:48:27 PDT 2010


O Eden como sempre muito didático! Eden ++
Aliás,
Uma discussão tranquila sem perguntas idiotas nem respostas 
arrogantes... diferente de algumas anteriores.
SP-PM++

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.
>
>    


-- 
What is the sound of Perl? Is it not the sound of a wall that people have
stopped banging their heads against?
—Larry Wall

Thiago Glauco Sanchez
Intrutor Perl e Redes
www.ticursos.net



More information about the SaoPaulo-pm mailing list