binmode FILEHANDLE, LAYER
Arranges for FILEHANDLE to be read or written in "binary" or
"text" mode on systems where the run-time libraries distinguish
between binary and text files. If FILEHANDLE is an expression, the
value is taken as the name of the filehandle. Returns true on
success, otherwise it returns "undef" and sets $! (errno).
On some systems (in general, DOS- and Windows-based systems)
binmode() is necessary when you're not working with a text file.
For the sake of portability it is a good idea always to use it
when appropriate, and never to use it when it isn't appropriate.
Also, people can set their I/O to be by default UTF8-encoded
Unicode, not bytes.