in reply to array filter

my ($filter_re) = map qr/$_/, join '|', map quotemeta, @filters; for my $phrase (@phrases) { $phrase =~ s/$filter_re//ig; }
or
use Regexp::List qw( ); my $filter_re = Regexp::List ->new(modifiers => 'i') ->list2re(@filters); for my $phrase (@phrases) { $phrase =~ s/$filter_re//g; }

The second should be faster is Perls earlier than 5.10.

Update: Made case-insensitive.

Replies are listed 'Best First'.
Re^2: array filter
by ikegami (Patriarch) on Nov 18, 2008 at 08:15 UTC

    Or did you mean

    @mainarray contains "In", "to", "the", wild"

    Use grep to filter out array elements.

    my %filters = map { lc($_) => 1 } @filters; my @words = grep !$filters{lc($_)}, @words;