in reply to Re: Sorting HOH
in thread Sorting HOH

Why are you doing two sorts or looking at keys? All you work with is the values of the values:
my @Top = sort { $a <=> $b } map { values %{$_} } values %data;

Caution: Contents may have been coded under pressure.

Replies are listed 'Best First'.
Re^3: Sorting HOH
by swaroop (Beadle) on May 02, 2005 at 17:38 UTC
    Thanks. But I need the key values too. Anyways , got the solution.

    Thanks again,
    Swaroop
      You need keys levels 1 and 2 and value correct ?

      Try a Schwarzian transform based code:

      use strict; use Data::Dumper; my %data; #-- original sample $data{1} = {'a' => 10, 'b' => 5, 'c' => 20 }; $data{2} = {'a' => 90, 'b' => 15, 'c' => 40 }; #-- my @Top = sort { $a->[2] <=> $b->[2] } map { my $h = $_; map { [ $h, $_, $data{$h}->{$_} ] } keys %{$data{$h}}; } keys %data; print Dumper(\@Top);
      After it you receive an array with ( Key1, Key2, Value ).

      On Schuartzian transformation you receive the original data format sorted, but you don't need it here.

      --
      Marco Antonio
      Rio-PM