[SP-pm] Dúvida com Hash Slices

Thiago Glauco Sanchez thiagoglauco at ticursos.net
Sun Jul 25 21:16:46 PDT 2010


Em 26/07/2010 00:11, "Flávio R. Lopes" escreveu:
> Grande mestre Thiago, como vai?
Fazendo as respostas dos outros exercícios... só o café salva nessas horas.
>
> Em 25-07-2010 12:11, Thiago Glauco Sanchez escreveu:
>> Flávio >>>>
>> Minhas dificuldade são:
>> 1)
>> Como o Perl "sabe" que "@quantidade" refere-se ao hash "%quantidade" ?
>> Por exemplo, se houvesse um outro array "*@quantidade* = qw/ 1 2 /" 
>> porque não causa confusão com "*@quantidade*{ @frutas } = @unidades" ?
>> >>>>
>>
>> O perl sabe que vc se refere a um hash pelas chaves { } e a um array 
>> pelos ( ). Os { } indicam que são chves de um hash e ( ) indicam que 
>> são elementos de um array.
>> Acho que era esta a sua pergunta?
> Só para ver se entendi mesmo, então quando tenho:
>
> my %quantidade;
> .
> .
> .
> .
> @quantidade{ @frutas } = @unidades;  ## => O perl sabe que 
> "@quantidade" refere-se ao hash "my %quantidade" por causa do {} ?
>
>
>
>>
>>
>> Flávio >>>>>
>> 2)
>> Na linha: @quantidade{ @frutas } = @unidades;
>> ## Posso entender que é aqui que é "montado" o hash "%quantidade" ?
>>
>> Onde:
>> Para cada chave: *@quantidade{ @frutas }*
>> É atribuído um valor: *@unidades
>> <<<<<<
>>
>> Sim, pode entender assim por que é isso que ocorre.
>> é o mesmo que:
>> @quantidade{ *bananas, laranjas, melões } = (qw / 5 10 15 /)
>>
>>
>>
>> Em 24/07/2010 23:55, "Flávio R. Lopes" escreveu:
>>> Olá pessoal, tudo bem?
>>>
>>> Seguinte, estou tendo certa dificuldade para entender sobre Hash 
>>> Slices.
>>>
>>> Vi um exemplo de Hash Slices no livro que estou lendo e tentei 
>>> montar um para tentar entender o funcionamento:
>>>
>>> my %quantidade;
>>>
>>> my @frutas = qw / bananas laranjas melões /;
>>> my @unidades = qw / 5 10 15 /;
>>> @quantidade{ @frutas } = @unidades;
>>>
>>> foreach my $frutas ( @frutas ) {
>>> say "Eu comprei $quantidade{$frutas} $frutas"
>>> }
>>>
>>> Minhas dificuldade são:
>>> 1)
>>> Como o Perl "sabe" que "@quantidade" refere-se ao hash "%quantidade" ?
>>> Por exemplo, se houvesse um outro array "*@quantidade* = qw/ 1 2 /" 
>>> porque não causa confusão com "*@quantidade*{ @frutas } = @unidades" ?
>>>
>>> 2)
>>> Na linha: @quantidade{ @frutas } = @unidades;
>>> ## Posso entender que é aqui que é "montado" o hash "%quantidade" ?
>>>
>>> Onde:
>>> Para cada chave: *@quantidade{ @frutas }*
>>> É atribuído um valor: *@unidades*
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> SaoPaulo-pm mailing list
>>> SaoPaulo-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>
>>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>


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