use strict; use warnings; my $file_in = '...'; my $file_out = '...'; open(my $fh_in, '<:raw:encoding(UCS-2LE)', $file_in) or die("Unable to open \"$file_in\": $!\n"); open(my $fh_out, '>:raw:encoding(UCS-2LE)', $file_out) or die("Unable to create file \"$file_out\": $!\n"); while (<$fh_in>) { ... print $fh_out $_; }