In this case you can live without any loop control at all:
while (defined(my $line = <INPUT>)) { print $line if not grep {line =~ /\Q$_\E/} @list; }
However if you have reason to believe that one or two of the matches is likely to knock out most of the input, using loop control explcitly will be more efficient. (So will using qr// to turn the list into REs up front and stop compiling them on each line.) So even though this algorithm can be cleanly expressed with loop control it may be worthwhile to use it anyways.

Another incidental note. When processing the input of files, I use while rather than foreach whenever reasonable. The reason is that foreach puts the input into list context, which slurps the file. This can potentially take a large amount of memory. By contrast while processes the file incrementally. If you ever have occasion to work with large files, the distinction will matter.


In reply to Re (tilly) 5: Unix 'grep -v' equivalency in Perl (was: Perl Regex Question) by tilly
in thread Unix 'grep -v' equivalency in Perl (was: Perl Regex Question) by quasimojo321

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.