Actually I've taken to using s/\r?\n/ /g lately.
That will handle Dos/Windows and Unix-like linebreaks, but not Macintosh linebreaks.
s/\r\n?|\n/<br>/g;
# Actually, this one's better:
s/\015\012?|\012/<br>/g;
U28geW91IGNhbiBhbGwgcm90MTMgY
W5kIHBhY2soKS4gQnV0IGRvIHlvdS
ByZWNvZ25pc2UgQmFzZTY0IHdoZW4
geW91IHNlZSBpdD8gIC0tIEp1ZXJk
| [reply] [d/l] |
# Actually, this one's better:
s/\015\012?|\012/<br>/g;
Having dealt almost exclusively with Unix(like)? and DOS(ish)? environments, I always forget about the portability of \r and \n which is why Juerd points to the more explicit \015 and \012 as a better solution.
To quote from Writing Portable Perl (perlport)...
In most operating systems, lines in files are terminated by newlines. Just what is used as a newline may vary from OS to OS. Unix traditionally uses \012, one type of DOSish I/O uses \015\012, and Mac OS uses \015.
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. In DOSish perls, \n usually means \012, but when accessing a file in "text" mode, STDIO 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.
--k.
| [reply] [d/l] |
Actually, and correct me if I am wrong on this, but I believe the \n matches \r carriage returns as well as just simple newlines in perl 5. Could be wrong, but I think I am not :).
Tradez
"Never underestimate the predicability of stupidity"
- Bullet Tooth Tony, Snatch (2001) | [reply] |
I don't believe so, only because I just had to change a s/\n//g to a s/\r?\n//g in something I was developing. Although I could be wrong. I have not done any imperical tests and I don't claim to be an expert on the subject.
Maybe one of the real experts can chime in with a definitive answer?
-pete
"I am Jack's utter lack of disbelief"
| [reply] [d/l] [select] |