Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: 3 questions... 2 about newlines, and one on how to be NICE

by EdwardG (Vicar)
on Jan 10, 2005 at 17:00 UTC ( #420997=note: print w/ replies, xml ) Need Help??


in reply to 3 questions... 2 about newlines, and one on how to be NICE

1. From perldoc perlvar -

$/ The input record separator, newline by default. This influences Perl's idea of what a "line" is. Works like awk's RS variable, including treating empty lines as a terminator if set to the null string. (An empty line cannot contain any spaces or tabs.) You may set it to a multi-character string to match a multi-character terminator, or to "undef" to read through the end of file. Setting it to "\n\n" means something slightly different than setting to "", if the file contains consecutive empty lines. Setting to "" will treat two or more consecutive empty lines as a single empty line. Setting to "\n\n" will blindly assume that the next input character belongs to the next paragraph, even if it's a newline. (Mnemonic: / delimits line boundaries when quoting poetry.)

2. chomp removes whatever is in $/

3. Don't feel bad about people continuing to answer your question - others may benefit, and there is benefit for the answerer as well.

 


Comment on Re: 3 questions... 2 about newlines, and one on how to be NICE
Download Code
Re^2: 3 questions... 2 about newlines, and one on how to be NICE
by punkish (Priest) on Jan 10, 2005 at 17:04 UTC
    3. Don't feel bad about people continuing to answer your question - others may benefit, and there is benefit for the answerer as well.
    Yup. Just ask paco
Re^2: 3 questions... 2 about newlines, and one on how to be NICE
by Eimi Metamorphoumai (Deacon) on Jan 10, 2005 at 17:07 UTC
    While we're quoting from perldoc, here's part of perldoc perlop:
    All systems use the virtual "\n" to represent a line terminator, called a "newline". There is no such thing as an unvarying, physical newline character. It is only an illusion that the operating system, device drivers, C libraries, and Perl all conspire to preserve. Not all sys- tems read "\r" as ASCII CR and "\n" as ASCII LF. For example, on a Mac, these are reversed, and on systems without line terminator, print- ing "\n" may emit no actual data. In general, use "\n" when you mean a "newline" for your system, but use the literal ASCII when you need an exact character. For example, most networking protocols expect and prefer a CR+LF ("\015\012" or "\cM\cJ") for line terminators, and although they often accept just "\012", they seldom tolerate just "\015". If you get in the habit of using "\n" for networking, you may be burned some day.
    So in other words, use "\n" for your local system's view of a newline, or use actual characters if you know what you want, regardless of what system you're running on.
      Just to complicate things further, please note that this is out of date and somewhat inaccurate. When perldoc says "on a Mac," it means "on a Mac running the Macintosh operating system up through version 9." Mac OS X (version 10) and newer use Unix-style newlines.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (11)
As of 2014-10-30 12:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (207 votes), past polls