Dirk80 has asked for the wisdom of the Perl Monks concerning the following question:
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: diamond operator, inplace edit and io layers
by Anonymous Monk on Jul 03, 2012 at 19:23 UTC | |
by Dirk80 (Pilgrim) on Jul 03, 2012 at 19:49 UTC |