<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!<br></div><div><br>-- <br>André Garcia Carneiro<br>Software Engineer<br><a href="tel:%2811%29982907780" value="+5511982907780" target="_blank">(11)982907780</a>
</div></div></div></div>