#!/usr/local/perl/5.15.8/bin/perl -w
my $fname = "foo.utf16";
open my $out, ">:crlf:encoding(UTF-16LE)", $fname or die;
print $out "\x{feff}\x{1234}\n\x{5678}\n";
####
$ ./test-out.pl
$ hexdump foo.utf16
0000000 feff 1234 0a0d 7800 0d56 000a
000000c
####
$ hexdump foo.utf16
0000000 feff 1234 000d 000a 5678 000d 000a
000000e
####
#!/usr/local/perl/5.15.8/bin/perl -w
use Devel::Peek;
my $fname = "foo.utf16";
# create correct file, using the same old layer mantra
# (the extra :utf8 is only required with older perls)
open my $out, ">:raw:encoding(UTF-16LE):crlf:utf8", $fname or die;
print $out "\x{feff}\x{1234}\n\x{5678}\n";
close $out;
# read file back in
open my $in, "<:crlf:encoding(UTF-16LE)", $fname or die;
$/ = undef;
Dump <$in>;
####
$ ./test-in.pl
SV = PV(0x77dc60) at 0x953728
REFCNT = 1
FLAGS = (TEMP,POK,pPOK,UTF8)
PV = 0x829130 "\357\273\277\341\210\264\r\n\345\231\270\r\n"\0 [UTF8 "\x{feff}\x{1234}\r\n\x{5678}\r\n"]
CUR = 13 ^ ^
LEN = 14