Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

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

by LanX (Archbishop)
on May 12, 2019 at 21:26 UTC ( #1233671=note: print w/replies, xml ) Need Help??


in reply to Re^2: 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 didn't say it's a problem in general,

I said it's not always just one character like the OP suggested.

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

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

Replies are listed 'Best First'.
Re^4: How to match last character of string, even if it happens to be a newline?
by haj (Hermit) on May 13, 2019 at 05:46 UTC

    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.

      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.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (4)
As of 2019-06-26 00:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Is there a future for codeless software?



    Results (108 votes). Check out past polls.

    Notices?