use Socket qw(:DEFAULT :crlf); local ($/) = LF; # not needed if $/ is already \012 while () { s/$CR?$LF/\n/; # replace LF or CRLF with logical newline }