- ベストアンサー
pack("C",0x61).pack("C",0x62)...を省略
$_=pack("C",0x61).pack("C",0x62).pack("C",0x68)... こういったバイナリ文字列をもっと簡単に$_=0x61.0x62.0x68のように書けませんか? $_=0x61.0x62.0x68ではうまくいきませんでした。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
1行でできます。 $_=pack("C*",0x61,0x62,0x68);
その他の回答 (3)
- leaz024
- ベストアンサー率75% (398/526)
回答No.4
$_ = "\x61\x62\x68"; でいいような気も。
- tatsu99
- ベストアンサー率52% (391/751)
回答No.2
1行では出来ませんが $moji = "4142313261"; $data = pack("H" . length ($moji),$moji); ではどうでしょうか。 print "<$data>\n"; で結果を確認して下さい
- feininger
- ベストアンサー率41% (74/180)
回答No.1
例えば↓とか、 print chr(0x61).chr(0x62).chr(0x63); 長いバイナリなら 0x も省略して↓ではどうでしょう。 @str = ('61','62','63'); foreach (@str) {print pack('C',hex($_));} 生バイナリなら binmode STDOUT なども指定する必要があるかも。
お礼
助かりました。変なのがついてたので。