BioNrd has asked for the wisdom of the Perl Monks concerning the following question:
The comment in the code asks the question. But for clarity, I want to sort hash values, while keeping track of the keys. Ultimately I want to be able to determine which has the highest value, and then use the key that matches the highest value in another subroutine (not shown). I am stuck, any help/advice would be great!use warnings; use Data::Dumper; my $counter = 3; %hash = ( a1_2 => 0.556, a1_3 => 0.345, a2_1 => 0.556, a2_3 => 0.125, a3_1 => 0.345, a3_2 => 0.125, ); print Data::Dumper->Dumpxs([\%hash], [q{*hash}]); for (1 .. $counter) { my @holder = (); my $outer = $_; for (1 .. $counter) { my $inner = $_; if ($outer == $inner) { next; } else { my $tracker = "a$outer\_$inner"; foreach $key (keys %hash) { my $value = $hash{$key}; if ($key eq $tracker) { print "$tracker : $key : $value\n"; push @holder, $value; } } } } @holder_sorted = sort { $a <=> $b } @holder; print "@holder_sorted\n"; # this works to sort the values, but # how do you sort the values while keeping track of the keys? }
thanks!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Sort Values in Hash, While Tracking Keys.
by chromatic (Archbishop) on Jan 29, 2008 at 02:29 UTC | |
|
Re: Sort Values in Hash, While Tracking Keys.
by GrandFather (Saint) on Jan 29, 2008 at 02:29 UTC | |
|
Re: Sort Values in Hash, While Tracking Keys.
by ikegami (Patriarch) on Jan 29, 2008 at 02:33 UTC | |
|
Re: Sort Values in Hash, While Tracking Keys.
by hipowls (Curate) on Jan 29, 2008 at 02:30 UTC | |
|
Re: Sort Values in Hash, While Tracking Keys.
by BioNrd (Monk) on Jan 29, 2008 at 04:06 UTC |