use strict; my %hash = (FOO => 'foo', BAR => 'bar', FUBAR => 'fubar'); my ($key1, $val1); my ($key2, $val2); while (($key1, $val1) = each %hash) { print "OUTER: $key1=$val1\n"; while (($key2, $val2) = each %hash) { print " INNER: $key2=$val2\n"; } }