[SP-pm] Dúvida com Hash Slices
Blabos de Blebe
blabos at gmail.com
Sat Jul 24 21:13:34 PDT 2010
Pense no seguinte:
use strict;
use warnings;
use Data::Dumper;
my %hash;
my @chaves = qw{a b c};
my @valores = qw{1 2 3};
my $chave = 'd';
my $valor = '4';
Singular:
$hash{ $chave } = $valor;
Plural:
@hash{ @chaves } = @valores;
say Dumper(\%hash);
Abraços
2010/7/25 Pinguim Azul <bluepenguin em gmail.com>:
> Você pode usar o ideone para executar pequenos trechos de código:
>
> http://www.ideone.com/
>
> 2010/7/25 Renato Santos <renato.cron em 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 em 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 em pm.org
>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>
>>
>>
>> --
>> Renato Santos
>> http://www.renatocron.com/blog/
>>
>> _______________________________________________
>> SaoPaulo-pm mailing list
>> SaoPaulo-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>
>
>
>
> --
> Ricardo Bittencourt
> http://www.ricbit.com
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
More information about the SaoPaulo-pm
mailing list