Each time through do_something(), not only does %hash get new data, but the hash reference pushed onto @array gets the old data.my (@array, %hash); do_something($_) for (1 .. 3); sub do_something { my $num = shift; $hash{$num} = $num; push @array, { %hash }; } use Data::Dumper; print Dumper(\%hash); foreach my $href (@array) { my ($key, $value); print "Hash ($href):\n"; foreach $key (keys %$href) { $value = $href->{$key}; print "\t$key => $value\n"; } }
This may or may not be what you want. In fact, I'm really not sure what you want. Instead of asking "How do I fix this bit of code that isn't working?" perhaps you should ask "Here is a textual description of the task I am trying to accomplish. What methods might I use to perform this task?" (XYZ Questions)
In reply to Re: Night of the Day of the Dawn of the Son of the Bride of the Return of the Attack of the Revenge of the Horrors of References and Complex Data Structures
by chromatic
in thread Night of the Day of the Dawn of the Son of the Bride of the Return of the Attack of the Revenge of the Horrors of References and Complex Data Structures
by DeusVult
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |