my $regex = join '|', qw( red green blue ); foreach my $line ( @lines ) { next if $line !~ $regex; } #### my $negative_regex = join '|', qw( red blue ); my $positive_regex = join '|', qw( green ); foreach my $line ( @lines ) { next if $line =~ $positive_regex || $line !~ $negative_regex; }