... if you had binary files that you wanted search ...
I actually meant ASCII files with one or two corrupt lines containing binary data - more specifically ^Z - the DOS EOF character which perl sees as the perfect opportunity to jump out of a while loop early (unless binmode is in effect).
I'm not sure what you mean by
Unfortunately, turning binmode on by default would be problematic as well.
but I think I have a solution - use open. The open pragma affects I/O ops for the script and from perldoc open comes the following snippet
The ":raw" discipline corresponds to "binary mode" and the ":crlf" dis
+cipline corresponds to "text mode" on platforms that distinguish betw
+een the two modes when opening files (which is many DOS-like platform
+s, including Windows). These two disciplines are currently no-ops on
+platforms where binmode() is a no-op, but will be supported everywher
+e in future.
which may solve whatever problems you are suggesting binmode causes.
perl -le "s,,reverse killer,e,y,rifle,lycra,,print"