$tophash{$value1}{$value2} = [$a, $b, $c, $d]; foreach $key (sort keys %tophash) { $value1 = $key; print "$value1"; foreach $subkey (sort keys %{$tophash{$value1}}) { $value2 = $subkey; foreach $subsubkey (sort %{$tophash{$value}{$value2}} ) { print "$subsubkey"; } } }