in reply to Re^2: Is there a way to open a memory file with binmode :raw?
in thread Is there a way to open a memory file with binmode :raw?
CRLF translation is feature of the Windows file systems; not the Perl language. The PerlIO layers emulate it when writing to the Windows file system.
One fairly typical usage of memory files is to reduce IO overheads by accumulating lines together into a single scalar and then write the entire file in one go.
If Perl applied the CRLF translation when writing to the memory file; then when the scalar is written to the file, the file system (or file system emulation) would apply the CRLF translation a second time and you would end up with \r\r\n.
Of course that could be avoided by applying the non default :raw layer to the actual output file; or by applying binmode; but that means extra steps are required.
Better to only apply CRLF translations when actually writing to actual file system files and then the default behaviours work together to produce the desired result.
|
|---|