in reply to Re: CR-LF Newlines as 2 distinct characters
in thread CR-LF Newlines as 2 distinct characters

I confused $/ with $\. Thank you for bringing that up. I am currently running under windows. I have used binmode, but it seems to add a record seperator after every print statement. Close approximation:
# @playlist has lines with no newlines my $playlist = undef; $playlist .= "$_\n" for ( "PLP PLAYLIST\nVERSION 1.20\n\n", @playlist +); open PLAYLIST, ">", 'playlist.plp' or die "Couldn't open playlist.plp: + $!"; print PLAYLIST "$_\x{00}" for (split //, $playlist);
This produces what I want EXCEPT for the newline CR-LF being lumped together.

"One is enough. If you are acquainted with the principle, what do you care for the myriad instances and applications?"
- Henry David Thoreau, Walden

Replies are listed 'Best First'.
Re^3: CR-LF Newlines as 2 distinct characters
by samtregar (Abbot) on May 18, 2006 at 21:18 UTC
    I'm pretty sure you need binmode() here, at the very least. If you don't, Windows is going to try to expand LF into CRLF on the way out to disk. That's going to play hell with any attempt on your part to write out your own line-separator.

    Another thing I'd try - stop using \n altogether. Instead, write out the characters you want explicitely: "\x012\x013" (or however you write that).

    -sam

      Certainly the right track. I had stopped with binmode and gone in search of some way to have the string encoding treated differently, hence my foray into using Encode.pm. As you can see, I've come back to it though.

      "One is enough. If you are acquainted with the principle, what do you care for the myriad instances and applications?"
      - Henry David Thoreau, Walden