Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

diamond operator, inplace edit and io layers

by Dirk80 (Pilgrim)
on Jul 03, 2012 at 19:05 UTC ( [id://979758]=perlquestion: print w/replies, xml ) Need Help??

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

      The difference is that you are not doing inplace editing.

      UPDATE

      I now tried your examples. And partly I have different results:

      Same result like you.

      $ perl -e" binmode STDOUT; $|=1; print qq[\x0d\x0a]; " | od -tx1 0000000 0d 0a 0000002

      Different result.

      $ perl -e" binmode STDOUT; $|=1; print qq[\x0d\x0a]; " | perl -e" use +open qw/ IN :crlf OUT :raw /; print join q/ /, unpack q/H*/, scalar<> +; " 0d0a

      Here my perl version.

      $ perl -v This is perl 5, version 14, subversion 2 (v5.14.2) built for i686-linu +x-gnu-thread-multi-64int

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://979758]
Approved by ansh batra
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2024-04-19 13:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found