use feature ":5.12"; sub usage { die "Usage $0 \n" } usage() if $#ARGV != 0; my $eol; given ($ARGV[0]){ when ([qw(unix linux)]){ $eol = "\n" } when ([qw(dos win)]) { $eol = "\r\n" } when ([qw(apple mac)]) { $eol = "\r" } default { usage() } } binmode(STDIN); binmode(STDOUT); my $last; while (sysread(STDIN, my $ch, 1) > 0) { if ($ch eq "\r" or $ch eq "\n"){ syswrite(STDOUT, $eol) unless $last eq "\r" and $ch eq "\n"; } else { syswrite(STDOUT, $ch) } $last = $ch; }