I just resaved the file out as unicode 8-bit and everything worked just fine.
Ah yes, Windows does like UTF-16...
use warnings;
use strict;
use Encode 'encode';
my $in = "1130\t";
my $str = encode('UTF-16', $in, Encode::FB_CROAK);
$str=~s/^\xFE\xFF|\t//g; # remove BOM & tab
print $str*1, "\n";
__END__
Argument "\01\01\03\00\0" isn't numeric in multiplication (*) at - lin
+e 7.
0
An alternative for you would also be open($fh, '<:raw:encoding(UTF-16)', 'filetoparse.txt') ... (Updated to add :raw as per choroba's reply, thanks!) |