my %a; $a{key1}{a}{key2}{b}{key3}{c}{key4}{d}=1; $a{key1}{a}{key2}{b}{key3}{d}{key4}{c}=1; foreach my ($a, $b, $c, $d) (keys_it $a{key1}{*}{key2}{*}{key3}{*}{key4}{*}) { whateveryouwant with your elements of %a; }