in reply to Hash filter one-liner not working as expected

Doh! I didn't have the proper syntax. Forgot I was dealing with a hash reference in the map function. This works:

my %colors = map { $_ => $hash->{$_} } grep { $_ =~ /color$/ } keys %$ +hash;

$PM = "Perl Monk's";
$MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate Priest Vicar";
$nysus = $PM . ' ' . $MCF;
Click here if you love Perl Monks

Replies are listed 'Best First'.
Re^2: Hash filter one-liner not working as expected
by vr (Curate) on Mar 17, 2019 at 11:56 UTC

    You had syntax for something else. If number of hash elements was odd, Perl would have warned you sooner than you loose 25 minutes, it was simply bad fortune. Btw, it could be:

    my %colors = %$hash{ grep /color$/, keys %$hash };

    with use 5.020; to warn would-be users.