http://qs321.pair.com?node_id=1212366


in reply to Sorting hash

Hi,

since your Dump contains 2 'hostname' elements, i think you really have a ArrayRef which contains HashRefs.

you also have to take care of your sorting.

hopefully my example code helps:

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; #Hash Number 1 my %hash1 = ( 'hostname' => { '1' => { 'pass' => 1, 'cpu' => '0.07%', 'box_name' => 'hostname', 'capacity' => '0.41%' } } ); #Hash Number 2 my %hash2 = ( 'hostname' => { '1' => { 'pass' => 1, 'cpu' => '0.04%', 'box_name' => 'hostname', 'capacity' => '0.25%' } } ); #Array of Hash Refs my @array = ( \%hash1, \%hash2 ); #Array Ref my $results = \@array; #Result Elements (Hash Refs $a and $b) are dereferenced and values of +key cpu is used for sorting + foreach my $router ( sort { $a->{'hostname'}{1}{cpu} <=> $b->{'hostnam +e'}{1}{cpu} } @{$results} ) { print Dumper($router); }