<div dir="ltr">por que $p nesse caso é uma referencia. vc esta reusando uma referencia a um hash nos 3 itens desse array no loop.<div><br></div><div>para evitar, declare %p dentro do loop e passe a referencia dele no array.</div></div><div class="gmail_extra"><br><div class="gmail_quote">2014-09-30 11:04 GMT-03:00 Andre Carneiro <span dir="ltr"><<a href="mailto:andregarciacarneiro@gmail.com" target="_blank">andregarciacarneiro@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Salve monges<br><br></div>Desculpem incomodar vocês com essa dúvida básica, mas não estou encontrando a idiotice que estou fazendo, e isso já está me consumindo algum tempo. Abaixo, um código resumido que reproduz o problema:<br><br><br></div><code><br><div><br>use Data::Printer; <br>my @a = ('amarelo','branco','vermelho'); <br>my $p = {id=>1,nome=>"foo"};<br>my @b = (); <br>foreach my $c(@a){<br>  $p->{'cor'} = $c; <br>  push @b,$p; <br>} <br>print p @b;<br></div><div><br></code><br><br></div><div>Resultado:<br></div><div>[<br>    [0] {<br>        cor    "vermelho",<br>        id     1,<br>        nome   "foo"<br>    },<br>    [1] var[0],<br>    [2] var[0]<br>]<br><br></div><div>Resultado esperado:<br></div><div>[<br>    [0] {<br>        cor    "vermelho",<br>        id     1,<br>        nome   "foo"<br>    },<br>    [1] {<br>        cor    "amarelo",<br>        id     1,<br>        nome   "foo"<br>    },<br>    [2] {<br>        cor    "preto",<br>        id     1,<br>        nome   "foo"<br>    }<br>]<br><div><div><br><br></div><div>A pergunta é simples. Porque não consigo o resultado esperado? <br><br><br></div><div>Obrigado!<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div><br>-- <br>André Garcia Carneiro<br>Software Engineer<br><a href="tel:%2811%29982907780" value="+5511982907780" target="_blank">(11)982907780</a>
</div></font></span></div></div></div>
<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Tiago B. Peczenyj<br>Linux User #405772<br><br><a href="http://about.me/peczenyj" target="_blank">http://about.me/peczenyj</a>
</div>