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.