my $n = 0; sub print_keywords { my $k = shift; for my $key (keys %$k) { print " " x $n; print "$key\n"; $n++; if (keys %{$k->{$key}}) { print_keywords($k->{$key}); } elsif ($k->{$key}) { print " " x $n, $k->{$key}, "\n"; } $n--; } }