Hello monks,
I know that this is a known topic. But I don't understand why the following code snippet is not doing what it should do.
use strict; use warnings; use open IN => ':crlf', OUT => ':raw'; @ARGV = ( "test.txt" ); $^I = ".bak"; while( <> ) { print; }
I have a file "test.txt" which contains lines with endings 0x0D0A (windows line endings). Because of the open pragma, I would assume that the input layer ':crlf' converts the 0x0d0a to 0x0a. But this is not happening. And because of the output layer, I would assume, that the ":raw" then only writes "0a" line endings to the file. But what happens is that "0d0a" endings are written to the file. This means the file is unchanged at the end. I think the output layer is not working, because the input layer is not converting 0x0d0a to 0x0a.
Why is the input layer not converting 0x0d0a to 0x0a?
Thank you alot.
Dirk
In reply to diamond operator, inplace edit and io layers by Dirk80
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |