Hi, as others have pointed out, your data structure is terrible. You should change the code that generates it if possible. If you are stuck with it ...
First transform the data into something easy to work with. Then get your lists.
Output:use warnings; use strict; use feature 'say'; use Data::Dumper; $Data::Dumper::Terse = $Data::Dumper::Indent = $Data::Dumper::Sortkeys + = 1; $Data::Dumper::Quotekeys = 0; my $in = get_input(); my %out; for my $id (keys %{ $in }) { for my $state (keys %{ $in->{$id} }) { $out{$state} = { map { split '=' } @{ $in->{$id}{$state} } }; }; } say 'Transformed input: ', Dumper \%out; say 'All states: ', Dumper [map { $_->{state_name} } values %out]; say 'Commented: ', Dumper [map { $_->{state_name} } grep { $_->{commen +ts} } values %out]; #---------------------------------------------------------# sub get_input { return { 99155 => { PR => [ 'state_name=Puerto Rico', 'county_names_all=Adjuntas|Utuado', ], AK => [ 'state_name=Alaska', 'county_names_all=Ketchikan Gateway|Prince of Wales-Hy +der', ], WA => [ 'state_name=Washington', 'county_names_all=Pend Oreille|Spokane|Lincoln|Adams', 'comments=America/Los_Angeles', ], }, 26134 => { WV => [ 'state_name=West Virginia', 'county_names_all=Wirt|Wood|Jackson|Ritchie|Calhoun', 'comments=America/New_York', ], }, }; }
See map, grep, split.Transformed input: { AK => { county_names_all => 'Ketchikan Gateway|Prince of Wales-Hyder', state_name => 'Alaska' }, PR => { county_names_all => 'Adjuntas|Utuado', state_name => 'Puerto Rico' }, WA => { comments => 'America/Los_Angeles', county_names_all => 'Pend Oreille|Spokane|Lincoln|Adams', state_name => 'Washington' }, WV => { comments => 'America/New_York', county_names_all => 'Wirt|Wood|Jackson|Ritchie|Calhoun', state_name => 'West Virginia' } } All states: [ 'Alaska', 'Washington', 'Puerto Rico', 'West Virginia' ] Commented: [ 'Washington', 'West Virginia' ]
Hope this helps!
In reply to Re: Get all hash value into array
by 1nickt
in thread Get all hash value into array
by Magnolia25
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |