use strict; use warnings; my @lines = ; my $data; foreach $data (@lines) { if($data =~ /sometext (?!not)\w* endtext/) { print "$data passed \n"; } } __DATA__ sometext not endtext sometext positive endtext #### sometext positive endtext passed