Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: highest value in hash

by Athanasius (Archbishop)
on Mar 31, 2013 at 02:44 UTC ( [id://1026319]=note: print w/replies, xml ) Need Help??


in reply to highest value in hash

Hello maciej, and welcome to the Monastery!

Expanding on the advice from Anonymous Monk, here is one way to implement the solution:

#! perl use warnings; use strict; my %hash = (1 => 8, 2 => 6, 3 => 3, 4 => 7); my $highest_value; my $highest_key; while (my ($key, $value) = each %hash) { print "$key key has value $value\n"; if (!defined $highest_value || $highest_value < $value) { $highest_key = $key; $highest_value = $value; } } print "The element with key $highest_key " . "has the highest value $highest_value\n" if defined $highest_key +;

Output:

12:36 >perl 591_SoPW.pl 4 key has value 7 1 key has value 8 3 key has value 3 2 key has value 6 The element with key 1 has the highest value 8 12:38 >

Note that this uses < to compare values numerically. To compare the values as strings, you would need to use lt instead:

if (!defined $highest_value || $highest_value lt $value)

Hope that helps,

Update: ++Anonymous Monk for the syntax below: it’s both simpler and more efficient. Confession: I had to re-read the documentation for each to verify that it Does the Right Thing here (it does). :-)

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Replies are listed 'Best First'.
Re^2: highest value in hash (defined)
by Anonymous Monk on Mar 31, 2013 at 04:12 UTC
    Just say no to defined :)
    ... my( $highest_value, $highest_key ) = each %hash; while (my ($key, $value) = each %hash) ...

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2024-04-24 19:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found