die("\\n ne LF\n") if "abc\n" ne "abc\x0A"; print("\\n eq LF\n"); $s = "abc"; $l1 = length($s); chomp($s); $l2 = length($s); if ($l1 - $l2 == 0) { print("abc unchanged\n"); } else { print("???\n"); } $s = "abc\n"; $l1 = length($s); chomp($s); $l2 = length($s); if ($l1 - $l2 == 1) { print("\\n removed from abc\\n\n"); } elsif ($l1 - $l2 == 0) { print("abc\\n unchanged\n"); } else { print("???\n"); } $s = "abc\r\n"; $l1 = length($s); chomp($s); $l2 = length($s); if ($l1 - $l2 == 2) { print("\\r\\n removed from abc\\r\\n\n"); } elsif ($l1 - $l2 == 1) { print("\\n removed from abc\\r\\n (\\r kept)\n"); } elsif ($l1 - $l2 == 0) { print("abc\\r\\n unchanged\n"); } else { print("???\n"); } __END__ ActivePerl v5.8.0 on WinXP -------------------------- \n eq LF abc unchanged \n removed from abc\n \n removed from abc\r\n (\r kept)