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!
In reply to Sort Values in Hash, While Tracking Keys. by BioNrd
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |