while(<>){
DOES use the $/="\n\n\n".
My suggestion for the enclosing block is not strictly necessary for the posted code, but I think it is in good style, and enables protection in the event the program grows.
This is not an optical illusion, it just looks like one.
| [reply] [d/l] |
++. Not strictly necessary for the posted code, but certainly necessary in the real code in view of the original question about the redefinition of $/ affecting other parts of the program (including apparently other modules). So it is most probably more than just good style, it is very likely to be absolutely needed for avoiding side effects.
| [reply] [d/l] |