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
|