in reply to Arbitrarily Nested HoH

I would probably do something like:

output(\%hash); sub output { my ($hash, @keys) = @_; die 'Not a hashref' unless(ref($hash) eq 'HASH'); foreach my $key (sort keys %$hash) { if(ref($hash->{$key}) eq 'HASH') { output($hash->{$key}, @keys, $key); } else { print join(', ', @keys, $key, $hash->{$key}), "\n"; } } }

update: added die.