Maybe the file has UTF8 characters on it? From the "read" docs (perldoc -f read):
Note the characters: depending on the status of the filehandle,
either (8-bit) bytes or characters are read. By default all filehandles operate on bytes, but for example if the filehandle has been
opened with the ":utf8" I/O layer (see "open", and the "open" pragma,
open), the I/O will operate on UTF-8 encoded Unicode characters, not
bytes. Similarly for the ":encoding" pragma: in that case pretty
much any characters can be read.