I personally believe that it has already been told you several times to read about binmode: how did it fail to answer your question? Alternatively, with a modern enough perl you can directly use a layer in the open call: