[SP-pm] Dúvida com Hash Slices

Pinguim Azul bluepenguin at gmail.com
Sat Jul 24 20:31:53 PDT 2010


Você pode usar o ideone para executar pequenos trechos de código:

http://www.ideone.com/

2010/7/25 Renato Santos <renato.cron at gmail.com>:
> Estou sem perl no momento (ohh nohh, windows)
> mas acho que seria assim:
>    my %quantidade;
>
>     my @frutas = qw / bananas laranjas melões /;
>     my @unidades = qw / 5 10 15 /;
>     %quantidade{ @frutas } = @unidades;
> ou
>     $quantidade{ @frutas } = @unidades;
>
>     foreach my $frutas ( @frutas ) {
>         say "Eu comprei $quantidade{$frutas} $frutas"
>     }
> La vai um exemplo:
> %x = {key=>'value with a key'};
> $x = 'value of scalar';
> @x = ('value of array');
> Todas as variaveis chamam-se "x", porem, para acessar os valores, usar-se
> meios diferentes.
> print $x{key}; # value with a key
> print $x; # value of scalar
> print $x[0]; # value of array
>
> Bom,
> enquanto escrevo um amigo roda um perl na casa dela via MSN! huasuhas
> seu codigo rodou no perl 5.8 (trocando apenas o say) e funcionou com $, mas
> nao com %
> Eu acho que o jeito mais correto é usar $, pois é a forma correta de
> escrever/acessar os valores de HASHs.
>
>
> 2010/7/24 "Flávio R. Lopes" <flavio.lopes at links.inf.br>
>>
>> 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 at pm.org
>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>
>
> --
> Renato Santos
> http://www.renatocron.com/blog/
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm at pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
Ricardo Bittencourt
http://www.ricbit.com


More information about the SaoPaulo-pm mailing list