use strict; use warnings; my @keywords = qw( keyword1 keyword2 keyword3 ); my $pattern = join( '|', map quotemeta, @keywords ); print "pattern = [$pattern]\n"; # using 'if' as a modifier while( my $line = ) { print $line if ( $line =~ m/$pattern/ ); } # using an 'if' block while( my $line = ) { if( $line =~ m/$pattern/ ) { print $line; } } __DATA__ somelines... somelines... somewords...keyword1..somewords somelines... somewords... keyword2...somewords...