while (my $line = ) { if ($line =~ /$_/) { ... last; # breaking while loop } else { ... last; # breaking while loop } } #### open (F, "$dir/$filename") || die ("Could not open $filename"); foreach (@store) { ... while ($line = ) { ... } } #### open(my $F, '<', "$dir/$filename) or die "Cannot open file '$dir/$filename' for reading: $!"; OUTER: while (my $line = <$F>) { foreach my $string (@store) { if ($line =~ /\Q$string\E/) { ... next OUTER; } } } close $F or die "Cannot close file '$dir/$filename': $!";