sub print_tree { my ($tree, $depth) = (@_, 0); ref $tree eq "HASH" or return; my $indent = "..." x $depth; for (sort keys %$tree) { print $indent, /^\s*\z/ ? "" : $_, "\n"; print_tree ($tree->{$_}, $depth + 1); } } print_tree (\%categories);