「W」が何をしているのか正確には理解できませんでした。
my $x = "this is my string";
print unpack("W",substr($x,0,1));
プリント:116
my $x = "this is my string";
print unpack("W",$x);
静止画:116
perldocから:W An unsigned char value (can be greater than 255).
unpack引数"W"
は1文字しか消費しないため、どちらの例も同じものを返します。"W*"
代わりに試してください。