in reply to Re: Doubt in code - Beginner in perl
in thread Doubt in code - Beginner in perl

Sorry, but:

If we try to read windows (CRLF) data under UNIX, the CR will be 'translated' to a perl newline. The LF is not translated at all.

This makes it sound like the CR gets translated into some other character that is then present in the Perl string alongside the LF, which is not the case. From PerlIO in regards to the :crlf layer:

On read converts pairs of CR,LF to a single "\n" newline character. On write converts each "\n" to a CR,LF pair.
It is stored as an ordinary character (the first character of the next line - chomp does not see it at all).

This is incorrect, the "\n" is stored at the end of the current line and removed by chomp (because $/ defaults to "\n").

On output, the perl newline is 'translated' into a UNIX newline (CR).

The *NIX newline is LF, not CR.

The LF (when present) is output as the first character of the next line (when it is output).

This doesn't make sense to me. The newline is output whenever we tell Perl to output it, typically at the end of the current line, either explicitly or implicitly via $\.