http://www.perlmonks.org?node_id=11159518


in reply to Problem with doubles results

You declared my %hash outside of the loop, so each time you push @updated_data, \%hash you get a reference to the same hash. So, it will be an array of many references to the final value of the hash on the last loop iteration.

Declare my %hash inside the loop to get a new one each time.