http://www.perlmonks.org?node_id=35305


in reply to varying length multi-dimensional hashes

So what you need is an arbitrarily nested hash searcher? Yikes, those can get tricky. See ref, but I'd start out with (pseudo) code like the following:
sub find_value { my $hash_ref = shift; my $level; foreach my $key (keys %$hash_ref) { $level .= "$key\n"; my $value = $hash_ref->{$key}; if (ref($value) eq 'HASH') { $level .= find_value($value); } else { $level .= "\t$value\n"; } } return $level; }
That's untested, and it doesn't do anything that Data::Dumper doesn't do better... but it's a place to start.