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"; } } }