in reply to Strange grep construct

Here's a guess.

my @lowercase_b = map lc, @b; my %lowercase_a = map { lc, $_ } @a; my @intersection_and_undefs = @lowercase_a{@lowercase_b}; my @intersection = grep defined, @intersection_and_undefs;

"Why 1st map is enclosed by @{}" => It's a hash slice.