This is skipping lines which only have a new line char at the start. m/^\s*$/ is a better way of saying a line with only white space characters because it allows any number of non-printing whitespace characters on the line. Whitespace is
\n\f\s\f\r Update: oof..goof should be \n\f\s\t\r order doesn't matter, but there are 5 of these white space critters and I goofed! Ooops!
m/^\n/ and next; ... }
This is sort of a "cheater" way to execute the "next" if the match is true. Sometimes this is a good idea, sometimes not. I would probably code it like this:
next if m/^\s*$/; #skip/re-prompt for blank lines
#or
if (m/^\s*$/) #very unlikely that I would write this
{ #but, it means the same as above
next;
}
I would not write the below. This is obfuscated bad code.
Because it obscures the "if" nature of the statement.
m/^\s*$/ and next;