in reply to Re^5: 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?

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.

Replies are listed 'Best First'.
Re^7: How to match last character of string, even if it happens to be a newline?
by LanX (Saint) on May 13, 2019 at 20:34 UTC
    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

      I meant in memory

      I would not bet that perl uses 0x0A in memory on an EBCDIC machine to represent "\n" (haven't checked the source code). According to EBCDIC, LF (ASCII 0x0A) is 0x25 in EBCDIC. And if - for some reason - perl uses CR to represent "\n", that would be 0x0D in EBCDIC. NL (newline) is 0x15 in EBCDIC. UTF-EBCDIC moves LF to 0x15, just to confuse people even more. And NL is gone.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
        I think it's fine as long as it's only one character and '"\n" eq "\n"'.

        So portability issues seem unlikely.

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