0x41
を出力して、 として表示できるようにしたいA
。
これは私がこれまでに試したことです:
my $out;
open $out, ">file.txt" or die $!;
binmode $out;
print $out 0x41;
close $out;
65
結果のファイルの代わりに出力A
します。これは私が望むものではありません。
私もこの同様の質問を読みましたが、回答を転送しません。pack
ショートすると、1 バイトではなく 2 バイトになります。
packには2つの引数が必要です。最初の引数は、パックする必要のあるデータの方法と数を説明します。
perl -e 'printf "|%s|\n",pack("c",0x41,0x42,0x44);'
|A|
perl -e 'printf "|%s|\n",pack("c3",0x41,0x42,0x44);'
|ABD|
perl -e 'my @bytes=(0x41,0x42,0x43,0x48..0x54);
printf "|%s|\n",pack("c".(1+$#bytes),@bytes);'
|ABCHIJKLMNOPQRST|
最初の部分でフォーマットを混在させることもできます。
perl -e 'printf "|%s|\n",pack("c3B8",0x41,0x42,0x44,"01000001");'
|ABDA|
chr 関数を使用します。
print $out chr 0x41