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

Eden Cardim edencardim at gmail.com
Wed Jul 21 19:52:55 PDT 2010


2010/7/21 "Flávio R. Lopes" <flavio.lopes em links.inf.br>:
> Não resolve. Mas jogando o "@juncao" para um hash, aí cai no caso daquele
> email anterior.
> Como o pessoal já me respondeu anteriormente, como um hash não permite
> duplicar as sua chaves, eu posso resolver este problema fazendo:
>
> my  %hash = map { $_ => $_ } @juncao;
>
> Aí dá certo (ou não?)!

acho que a melhor solução pra seu problema (que é meio estranho),
seria usar arrays como valores no hash:

perl  -MData::Dumper -le'@foo = qw(1 2 3 1 2 4 5 6 6); push
@{$temp{$_}}, $_ for @foo; print Dumper(\%temp)'
$VAR1 = {
          '6' => [
                   '6',
                   '6'
                 ],
          '4' => [
                   '4'
                 ],
          '1' => [
                   '1',
                   '1'
                 ],
          '3' => [
                   '3'
                 ],
          '2' => [
                   '2',
                   '2'
                 ],
          '5' => [
                   '5'
                 ]
        };


depois para produzir a saída que você mencionou antes:

print map { "$_ => $_\n" } map { @$_ } values %temp;

-- 
   Eden Cardim       Need help with your Catalyst or DBIx::Class project?
  Code Monkey                    http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/


More information about the SaoPaulo-pm mailing list