Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

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

by tye (Sage)
on Apr 23, 2003 at 14:11 UTC ( [id://252554]=note: print w/replies, xml ) Need Help??


in reply to How to compare hash value

my %merge; for my $key ( keys %myhash ) { push $merge{join $;, sort @{$myhash{$key}}}, $key; }
assuming $; doesn't appear in any of your values.

Update: Use the corrected code below. Thanks, Adam. I'll leave the @{} out above for continuity.

                - tye

Replies are listed 'Best First'.
Re: Re: How to compare hash value (sort, join, hash)
by Adam (Vicar) on Apr 25, 2003 at 17:25 UTC
    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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://252554]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2024-04-25 12:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found