Beefy Boxes and Bandwidth Generously Provided by pair Networks Joe
go ahead... be a heretic
 
PerlMonks  

Re: How to compare hash values within the same hash?

by roboticus (Canon)
on Sep 24, 2013 at 23:58 UTC ( #1055569=note: print w/ replies, xml ) Need Help??


in reply to How to compare hash values within the same hash?

phildeman:

I like to invert the hash for things like this. This way, you get a list of the keys for each value:

$ cat t.pl #!/usr/bin/perl my %hash = (key1=>10,key2=>10,key3=>3,key4=>5,key5=>10); my %invhash; while (my ($k,$v) = each %hash) { push @{$invhash{$v}}, $k; } for my $v (sort {$a<=>$b} keys %invhash) { print "$v cnt=", scalar(@{$invhash{$v}}), " keys=",join(", ",@{$invhash{$v}}), "\n"; } $ perl t.pl 3 cnt=1 keys=key3 5 cnt=1 keys=key4 10 cnt=3 keys=key5, key2, key1

But if you don't find the list of keys useful, or if there's too much data, just incrementing a counter as you suggest will do the job.

...roboticus

When your only tool is a hammer, all problems look like your thumb.


Comment on Re: How to compare hash values within the same hash?
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (16)
As of 2014-04-24 12:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (565 votes), past polls