I'm surprised you don't get an error, as I am getting this with your code:
syntax error at colors.pl line 31, near "$hash{"
Anyway, changing your code line with the grep and map as follows:
or like this:my %colors = map { $_ => $hash->{$_} } grep { $_ =~ /color$/ } keys %$ +hash;
works for me. Your error seems to be in this: %$hash{$_} (in the map).my %colors = map { $_ => $$hash{$_} } grep { $_ =~ /color$/ } keys %$h +ash;
Output of Data::Dumper on the %colors hash:
$ perl colors.pl $VAR1 = { 'test_menu_hl_color' => '#a74d3d', 'test_widget_color' => '#eee3b7', 'test_text_color' => '#000000', 'test_widget_header_color' => '#c6b989', 'test_menu_color' => '#004d59', 'background_color' => 'ffffff', 'test_article_background_color' => '#ceddd2', 'test_widget_title_color' => '#ffffff', 'test_menu_text_color' => '#ffffff', 'test_link_color' => '#31e500', 'test_headline_color' => '#7b0706', 'header_textcolor' => 'blank' };
In reply to Re: Hash filter one-liner not working as expected
by Laurent_R
in thread Hash filter one-liner not working as expected
by nysus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |