Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: ActivePerl 5.6.1 Win32 munging CR/LFs

by aquacade (Scribe)
on Jul 25, 2001 at 01:06 UTC ( [id://99486]=note: print w/replies, xml ) Need Help??


in reply to ActivePerl 5.6.1 Win32 munging CR/LFs

Perl is not C (I'm still learning this myself)! The string tokens of \n or \r [are not | do not seem to be] C style CHAR-type data per se! Please refer to Camel book PACK and UNPACK functions for do hex-based string manipulation (pg 757 3rd edition) for yet another way to handle the problem (if you like hex strings).

Example:
use strict; my $cr=pack("H2",'0d'); my $lf=pack("H2",'0a'); my $lfcr=$lf.$cr; my $ans=unpack("H4",$lfcr); print '$lfcr=x',"$ans\n";

This will give your your linefeed/carrage return order, BUT depending how you're reading/manipulating your data (for example with <> and chop|chomp) you may need to clean the dangling single $lf's out yourself!

Update:

Thank you Tye, I stand humbly corrected (and learned something I didn't know) about what binmode does!

Replies are listed 'Best First'.
(tye)Re: ActivePerl 5.6.1 Win32 munging CR/LFs
by tye (Sage) on Jul 25, 2001 at 01:45 UTC

    No, no, no! Perl is nearly exactly like C in this regard. "\n" is always a single character. When it gets written to a non-binmode file under Win32, it gets turned into "\r\n". When it gets written to a (defaultly configured) device under Unix, it also gets turned into "\r\n" (but people don't worry much about that because you can't read the results back in).

            - tye (but my friends call me "Tye")

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://99486]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-04-25 17:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found