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.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.
  • Comment on Re^3: Is there a way to open a memory file with binmode :raw?