#!/usr/bin/perl -w use strict; my @approved = qw( foo bar); @approved = map { $_ = quotemeta $_; ### very important qr/$_/is; ## available in perl 6, not really needed } @approved; print "The approved list\n", join "\n", @approved; my $merex = join ' && ', map "/$_/", @approved; print "merex \n$merex\n\n"; if(@ARGV) { print "ARGV\n"; while() { print if eval $merex; } } else { while() { my $toprint = 0; for my $r(@approved) { $toprint++ if m/$r/; } print if $toprint == scalar @approved; } } __DATA__ foo bar bar foo foo bar baz barbazfoo foofoobar