note
ww
No, the second regex would NOT be executed.
<p>The second is inside your while; execution never gets there on a line with nothing but a return. Rather, the first "and next" sends execution back to the next while test.</p>
<p><b>This is the kind of thing you can test for yourself.</b> As another user was advised, in paraphrase, <i>the universe won't end when you try out your (safe) code</i> (<b>caveat: </b>don't try this with code that could muck about with your system... or anybody else's. cf <c>rm, unlink</c>, etc.</p>
<p>In this case, a simple way to explore your question might be:</p>
<c>#!/usr/bin/perl
use strict;
use warnings;
#786068
while (<DATA>) {
m/^\n/ and next;
m/^\n/ and next;
print;
}
__DATA__
line 1
line2
line4, preceeded by blank line
ln 5
ln6
ln8 preceeded by 2 blank lines
ln9</c>
<p>Go ahead; try it! And, for extra credit, write a script that makes the output clear(er) to you (hint: put the second regex in a conditional and do something if a match occurs). Alt: run the script under the debugger, watching line 9 of the code above.</p>
786040
786068