in reply to Avoid using local $/=undef?

Based on my limited understanding local $/ = undef when used inside an innermost block of the smallest scope possible is acutally perfectly fine. If you just say $/ = undef in a global scope, then you can run into problems with other IO - usually when some other modules your using are doing IO. This is because $/ is a global variable.

Also be aware that localising a variable doesn't preserve its value into the localised copy; the localised copy is undefined. As this example crudely demonstrates:
c:\WorkingFolder>perl -e "$/ = 5; print qq{$/\n}; {local $/; print qq +{$/\n}; $/ = 2; print qq{$/\n};} print $/" __END__ Output is: 5 #initally set $/ to something we can see when we print it #2nd print, proves localsised $/ is set to undef 2 #localised copy of $/ set to 2 5 #inner scope where $/ was localised has ended. Original $/ is + reinstated by Perl