use strict; use warnings; my @array; my $VAR1 = { '1.2.3.4' => { '27029' => 5, '20617' => 1 }, '1.2.3.5' => { '51509' => 1, '17427' => 1, '63961' => 7, '22331' => 1, '20780' => 7 }, '1.2.3.6' => { '1500' => 3 }, }; for my $var1 (keys %$VAR1) { push @array, [$var1, $_, $$VAR1{$var1}{$_}] for keys %{$$VAR1{$var1}}; } print map {$_->[0], "\t", $_->[1], "\t", $_->[2], "times \n"} sort {$a->[2] <=> $b->[2]} @array;