MD5.pm doesn't bypass anything. If it would, you'd get the same result for all three outputs.
Here is, in more detail, what happens:
- You open a file, and apply the crlf IO layer.
- You write a "\n" to that file. The crlf layer converts that to CRLF
- MD5.pm reads from the very same filehandle. That means that the CRLF is converted to "\n" again upon reading. MD5.pm interprets that as binary data, and thus as LF.
- You close the file, and open it again, this time without any layer
- MD5.pm reads from that file, and this time the line ending comes out as CRLF, because no IO layer converts anyting. MD5.pm computes a hash, which is different than before because the source data is different
| [reply] |