in reply to Map not working as expected.
This line is odd:
map {@yum = grep {!/$_/} @yum;} @bad;What do you expect $_ to represent in the grep block? If you want it to represent the elements of @bad, then you need to copy it to a lexical, because inside the grep block, it represents each element of @yum in turn.
However, this is not really an appropriate use of map, and not in the least because it doesn't work. Use map when you want to transform one list to another list.
To exclude elements, use a hash (and presumably a grep):
# here's a list transform, from a list into a list of pairs my %bad = map { $_ => undef } @bad; my @good_yum = grep { not $bad{$_} } @yum;
|
|---|