$a{key1}{key2}{key3}{key4}{"a","b","c","d"} = 1; $a{key1}{key2}{key3}{key4}{"a","b","d","c"} = 1; while (my $mkey = each %{$a{key1}{key2}{key3}{key4}}) { my ($a, $b, $c, $d) = split $;, $mkey; ... }