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

Re^5: How to match last character of string, even if it happens to be a newline?

by LanX (Archbishop)
on May 13, 2019 at 16:49 UTC ( #1233713=note: print w/replies, xml ) Need Help??


in reply to Re^4: 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.

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

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

        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". ;-)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2019-06-18 13:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Is there a future for codeless software?



    Results (82 votes). Check out past polls.

    Notices?
    • (Sep 10, 2018 at 22:53 UTC) Welcome new users!