#!/usr/bin/perl -w
use strict;
my %hoh_test;
$hoh_test{foo1}{bar} = -0.12697;
$hoh_test{foo1}{baz} = -0.000398154;
$hoh_test{foo2}{bar} = -4.0183e-05;
$hoh_test{foo2}{baz} = 0;
$hoh_test{foo3}{bar} = 9.966003977e-06;
$hoh_test{foo3}{baz} = 0.0001939;
# sort descending by value
my %sorter;
foreach my $foo (keys(%hoh_test))
{
foreach my $ba (sort {$hoh_test{$foo}{$b} <=> $hoh_test{$foo}{$a}} keys(%{$hoh_test{$foo}}))
{
push @{$sorter{$hoh_test{$foo}{$ba}}}, [ $foo, $ba ];
}
}
foreach my $val (sort {$a<=>$b} keys %sorter)
{
foreach my $keys ( @{$sorter{$val}} ) {
print "foo: $$keys[0], ba: $$keys[1], value: $hoh_test{$$keys[0]}{$$keys[1]}\n";
}
}
####
foo: foo1, ba: bar, value: -0.12697
foo: foo1, ba: baz, value: -0.000398154
foo: foo2, ba: bar, value: -4.0183e-05
foo: foo2, ba: baz, value: 0
foo: foo3, ba: bar, value: 9.966003977e-06
foo: foo3, ba: baz, value: 0.0001939
##
##
#!/usr/bin/perl -w
use strict;
my %hoh_test;
$hoh_test{foo1}{bar} = -0.12697;
$hoh_test{foo1}{baz} = -0.000398154;
$hoh_test{foo2}{bar} = -4.0183e-05;
$hoh_test{foo2}{baz} = 0;
$hoh_test{foo3}{bar} = 9.966003977e-06;
$hoh_test{foo3}{baz} = 0.0001939;
# sort descending by value
my %sorter;
foreach my $foo (keys(%hoh_test))
{
foreach my $ba (keys(%{$hoh_test{$foo}}))
{
push @{$sorter{$hoh_test{$foo}{$ba}}}, [ $foo, $ba ];
}
}
foreach my $val (sort {$b<=>$a} keys %sorter)
{
foreach my $keys ( @{$sorter{$val}} ) {
print "foo: $$keys[0], ba: $$keys[1], value: $hoh_test{$$keys[0]}{$$keys[1]}\n";
}
}