http://qs321.pair.com?node_id=786094


in reply to Re^4: About a piece of code
in thread About a piece of code

No, the second regex would NOT be executed.

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.

This is the kind of thing you can test for yourself. As another user was advised, in paraphrase, the universe won't end when you try out your (safe) code (caveat: don't try this with code that could muck about with your system... or anybody else's. cf rm, unlink, etc.

In this case, a simple way to explore your question might be:

#!/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

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.