sub iter { my $href = shift; my $level = shift; local $_; foreach (keys %{$href}) { if (ref($href->{$_})) { iter($href->{$_}, $level+1); } else { print ' ' x $level; print "$_\n"; } } } iter(\%unique, 0);