http://qs321.pair.com?node_id=253207


in reply to Re: How to compare hash value (sort, join, hash)
in thread How to compare hash value

Tye, you are pushing onto a scalar. Perl usually prefers for you to push things onto an array. :)

>perl -Mstrict -we "my $foo = []; push $foo, 'bar'"
Type of arg 1 to push must be array (not private variable) at -e line 1, at EOF
Execution of -e aborted due to compilation errors.

>perl -Mstrict -we "my %h; push $h{foo}, 'bar'"
Type of arg 1 to push must be array (not hash element) at -e line 1, at EOF
Execution of -e aborted due to compilation errors.
I think what you wanted to say here was:
my %merge; for my $key ( keys %myhash ) { push @{ $merge{ join $;, sort @{ $myhash{$key}} } }, $key; }
I like it though, and it helps me solve an e-mail consolidation problem I had been working on.
-Adam