# Perl's chomp removes $/, which is "\n" -- so a Windows line keeps its "\r".
use strict;
use warnings;

sub shown { my $s = shift; $s =~ s/\r/\\r/g; $s =~ s/\n/\\n/g; return qq("$s") }

for my $line ("unix\n", "windows\r\n", "old mac\r", "blank line after\n\n") {
    my $copy = $line;
    chomp $copy;
    printf "  chomp on %-24s %s\n", shown($line), shown($copy);
}
my $crlf = "windows\r\n";
$crlf =~ s/\R\z//;
printf "  %-33s %s\n", 's/\R\z// on "windows\r\n"', shown($crlf);
{
    local $/ = "";
    my $para = "blank line after\n\n";
    chomp $para;
    printf "  %-33s %s\n", 'local $/ = ""; chomp', shown($para);
}
