in reply to Re^3: How to match last character of string, even if it happens to be a newline?
in thread How to match last character of string, even if it happens to be a newline?

In Perl, "\n" is always one character, regardless of the platform. It is written as two bytes if you use the default encoding on some platforms, Windows being the most popular. Newline has a nice overview.

If you read a file containing 0D0A using the default encoding on Unix platforms, or with binmode on any platform, you get two characters "\r\n" which you can (or have to) process.

  • Comment on Re^4: How to match last character of string, even if it happens to be a newline?

Replies are listed 'Best First'.
Re^5: How to match last character of string, even if it happens to be a newline?
by LanX (Saint) on May 13, 2019 at 16:49 UTC
    I think you are right, \n seems to be encoded as 0x0A on all plattforms.

    Though didn't test writing and rereading, but I suppose the effect to be the same as long as I don't specify an open with the binmode option.

    Thanks! :)

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

      I think you are right, \n seems to be encoded as 0x0A on all plattforms.

      I can't test right now, but perlport says differently:

      Perl uses \n to represent the "logical" newline, where what is logical may depend on the platform in use. In MacPerl, \n always means \015. On EBCDIC platforms, \n could be \025 or \045. In DOSish perls, \n usually means \012, but when accessing a file in "text" mode, perl uses the :crlf layer that translates it to (or from) \015\012, depending on whether you're reading or writing. Unix does the same thing on ttys in canonical mode. \015\012 is commonly referred to as CRLF.
        I meant in memory, not how it's translated to the FS.

        That's the main confusion of this sub-thread =)

        Cheers Rolf
        (addicted to the Perl Programming Language :)
        Wikisyntax for the Monastery FootballPerl is like chess, only without the dice