#!/usr/bin/perl use strict; use warnings; my %sorthash; $sorthash{10}{20} = 3; $sorthash{10}{40} = 1; $sorthash{40}{50} = 4; $sorthash{20}{30} = 2; print map { "keys: $_->[0]\t$_->[1]\tvalues: $sorthash{$_->[0]}{$_->[1]}\n" } sort { $a->[1] <=> $b->[1] } map { my $key=$_; map { [$key, $_] } keys %{$sorthash{$key}} } keys %sorthash; __END__ keys: 10 20 values: 3 keys: 20 30 values: 2 keys: 10 40 values: 1 keys: 40 50 values: 4