in reply to 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

I'm still pretty sure it's the global variable that's messing you up. Consider the odd-but-possible case where %globalHash gets new values occasionally:
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"; } }
Each time through do_something(), not only does %hash get new data, but the hash reference pushed onto @array gets the old data.

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)

  • Comment on 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
  • Download Code