#!/usr/bin/perl use utf8; use Modern::Perl; use Data::Dumper; my $db = { '99155' => { 'PR' => { state_name => 'Puerto Rico', county_names_all => [qw{Adjuntas Utuado}], }, 'AK' => { state_name => 'Alaska', county_names_all => ['Ketchikan', 'Gateway', 'Prince of + Wales-Hyder'], }, 'WA' => { state_name => 'Washington', county_names_all => ['Pend Oreille', 'Spokane', 'Lincol +nAdams'], comments => 'America/Los_Angeles' } }, '26134' => { 'WV' => { state_name => 'West Virginia', county_names_all => ['Wirt', 'Wood', 'Jackson', 'Ritchie', 'Calhoun'], comments => 'America/New_York' } } }; my %states_with_comments = map { ($$_{state_name}, 'hurray!') } grep { $$_{comments} } map { values %$_ } values %$db; print "states are: ", (join "; ", sort, keys %states_with_comments), "\n"; #### $VAR1 = { '26134' => { 'WV' => { 'county_names_all' => [ 'Wirt', 'Wood', 'Jackson', 'Ritchie', 'Calhoun' ], 'comments' => 'America/New_York', 'state_name' => 'West Virginia' } }, '99155' => { 'WA' => { 'comments' => 'America/Los_Angeles', 'state_name' => 'Washington', 'county_names_all' => [ 'Pend Oreille', 'Spokane', 'Lincol +nAdams' ] }, 'AK' => { 'county_names_all' => [ 'Ketchikan', 'Gateway', 'Prince of + Wales-Hyder' ], 'state_name' => 'Alaska' }, 'PR' => { 'state_name' => 'Puerto Rico', 'county_names_all' => [ 'Adjuntas', 'Utuado' ] } } };