#!perl
use 5.12.0;
use warnings;
my $in_file = $^O eq 'MSWin32'
? 'utf16_LE_prob.dos_dat'
: 'utf16_LE_prob.unix_dat';
my $out_file = $^O eq 'MSWin32'
? 'utf16_LE_prob.dos_out'
: 'utf16_LE_prob.unix_out';
my $in_mode = $^O eq 'MSWin32'
? '<:raw'
: '<';
my $out_mode = $^O eq 'MSWin32'
? '>:raw'
: '>';
open my $in_fh, $in_mode, $in_file or die $!;
open my $out_fh, $out_mode, $out_file or die $!;
while (my $line = <$in_fh>) {
print $out_fh $line;
}
close $out_fh;
close $in_fh;
####
$ cat -vet utf16_LE_prob.unix_dat utf16_LE_prob.dos_dat
Line 1$
Line 2$
$
Line 1^M$
Line 2^M$
^M$
##
##
$ cat -vet utf16_LE_prob.unix_out
Line 1$
Line 2$
$
##
##
$ cat -vet utf16_LE_prob.dos_out
Line 1^M$
Line 2^M$
^M$
##
##
while (my $line = <$in_fh>) {
chomp $line,
print $out_fh $line, $/;
}
##
##
$ cat -vet utf16_LE_prob.unix_out utf16_LE_prob.dos_out
Line 1$
Line 2$
$
Line 1^M$
Line 2^M$
^M$
##
##
$ cat -vet utf16_LE_prob.unix_out utf16_LE_prob.dos_out
Line 1$
Line 2$
$
Line 1^M$
Line 2^M$
^M$
##
##
$ cat -vet utf16_LE_prob.unix_out utf16_LE_prob.dos_out
Line 1$
Line 2$
$
Line 1^M$
Line 2^M$
^M$
##
##
$ cat -vet utf16_LE_prob.unix_out utf16_LE_prob.dos_out
Line 1$
Line 2$
$
Line 1^M$
Line 2^M$
^M$