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

Bruno Buss bruno.buss at gmail.com
Wed Jul 21 19:27:59 PDT 2010


push @juncao_elementos, @array1, @array2;

2010/7/21 "Flávio R. Lopes" <flavio.lopes at links.inf.br>

> Aproveitando a oportunidade, teria jeito mais fácil do que este que eu fiz
> para juntar dois Arrays em um terceiro array, por exemplo:
>
> my @array1 = qw ( 4 5 6 7 );
> my @array2 = qw ( 8 9 );
>
>    foreach my $elementos ( @array1, @array2 ) {
>
>        push @juncao_elementos, $elementos;
>
>    }
>
>
>
>
> Em 21-07-2010 22:45, Daniel de Oliveira Mantovani escreveu:
>
>  Você pode contar o tanto de vezes que aparece em seguida,
>>
>> use strict;
>> use warnings;
>> use Data::Dumper;
>>
>> my @numeros = ( 1, 2, 3, 4, 5, 6, 6, 6, 5 );
>> my %hash = map { $_ =>  { $_ =>  ++$_{$_} } } @numeros;
>>
>> print Dumper %hash;
>>
>> <resultado>mantovani at mantovani-desktop:~$ perl foo.pl
>> $VAR1 = '6';
>> $VAR2 = {
>>           '6' =>  3
>>         };
>> $VAR3 = '4';
>> $VAR4 = {
>>           '4' =>  1
>>         };
>> $VAR5 = '1';
>> $VAR6 = {
>>           '1' =>  1
>>         };
>> $VAR7 = '3';
>> $VAR8 = {
>>           '3' =>  1
>>         };
>> $VAR9 = '2';
>> $VAR10 = {
>>            '2' =>  1
>>          };
>> $VAR11 = '5';
>> $VAR12 = {
>>            '5' =>  2
>>          };
>> </resultado>
>>
>>
>> 2010/7/21 "Flávio R. Lopes"<flavio.lopes at links.inf.br>:
>>
>>
>>> Humm....
>>>
>>> Obrigado pessoal!
>>>
>>> Em 21-07-2010 21:41, Giuliani Sanches escreveu:
>>>
>>>
>>>> Flávio,
>>>>
>>>> Hash não permite a duplicação de chaves. Ao adicionar o primeiro 6,
>>>> ele simplesmente vai sobrescrevendo o conteúdo e como todos são 6,
>>>> você tem o resultado obtido.
>>>>
>>>> []'s
>>>>
>>>> Em 21 de julho de 2010 21:31, "Flávio R. Lopes"
>>>> <flavio.lopes at links.inf.br>    escreveu:
>>>>
>>>>
>>>>
>>>>> Olá pessoal.
>>>>>
>>>>> Num dos exercícios que estou fazendo, uma das soluções (pelo menos que
>>>>> estou
>>>>> imaginando) seria colocar o conteúdo de um array dentro de um hash, mas
>>>>> quando os elementos são repetidos, só insere a primeira instância do
>>>>> elemento.
>>>>>
>>>>> Supondo um array com os elements:
>>>>>
>>>>> my  @numeros = (1, 2, 3, 4, 5, 6, 6, 6, 5);
>>>>>
>>>>> my  %hash = map { $_ =>    $_ } @numeros;
>>>>>
>>>>>  while ( my ($chave, $valor) = each %hash ) {
>>>>>
>>>>>        say "$chave =>    $valor";
>>>>>
>>>>>  }
>>>>>
>>>>>
>>>>> Tenho como saída:
>>>>> 6 =>    6
>>>>> 4 =>    4
>>>>> 1 =>    1
>>>>> 3 =>    3
>>>>> 2 =>    2
>>>>> 5 =>    5
>>>>>
>>>>>
>>>>> Porque os outros dois elementos "6" e o último elemento "5" não são
>>>>> armazenados dentro do hash?
>>>>> Gostaria que produzisse a seguinte saída (como todos os 9 elementos do
>>>>> array):
>>>>>
>>>>> 6 =>    6
>>>>> 6 =>    6
>>>>> 6 =>    6
>>>>> 4 =>    4
>>>>> 1 =>    1
>>>>> 3 =>    3
>>>>> 2 =>    2
>>>>> 5 =>    5
>>>>> 5 =>    5
>>>>>
>>>>> Onde estou errando?
>>>>>
>>>>> Abraço,
>>>>> Flávio
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> SaoPaulo-pm mailing list
>>>>> SaoPaulo-pm at pm.org
>>>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> SaoPaulo-pm mailing list
>>> SaoPaulo-pm at pm.org
>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>
>>>
>>
>>
>>
>>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm at pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
Bruno C. Buss
http://brunobuss.wordpress.com/
http://www.dcc.ufrj.br/~brunobuss/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20100721/ff62c5ef/attachment-0001.html>


More information about the SaoPaulo-pm mailing list