in reply to if modifier of a print statement
I strongly suspect you're being bitten by operator precedence.
print $_ . "\n" and next if /no_proc/;
See the Copyright notice on my home node.
Perl training courses
The first one is interpreted as:
print $_ . ("\n" && next) if /no_proc/;
The . operator has higher precedence than the && operator so it is actually interpreted as:
$ perl -MO=Deparse,-p -e' print $_ . "\n" && next if /no_proc/; '
(/no_proc/ and print((($_ . "\n") && next)));
-e syntax OK