http://www.perlmonks.org?node_id=963552


in reply to Traversing through HoH

You can also use while with each, I find it reads better though it is still nested loops:
while ( my ($key1,$hash1) = each %{$hoh} ) { while ( my ($key2,$value) = each %{$hash1} ) { ### CODE ### } }