$x = 0377; # 以「0」開頭是 8 進位表示法,因此 0377 代表十進位的 255
$y = 0xfe; # 以「0x」開頭是 16 進位表示法,因此 0xfe 代表十進位的 254
$x / $y 是數字,但是一旦用以下方式,就成為ASCII/UTF-8 的字串:
$x = chr(0xfe);
$y = "\xfe";
以上等價
$x = chr(0xFEFF);
$y = "\x{FEFF}"; #數字太大,要用{}標示
以上等價
這些字串也可以用 pack("ccc",...),見以下範例:
[root@EIP-API-AP erp]# perl
print "0x64\n";
print "\x64\n";
print chr(0x64)."\n";
print pack("C",0x64)."\n";
__END__
0x64
d
d
d
結論:"\x64" 等價 chr(0x64) 等價 pack("C",0x64) 但 不等價 0x64
沒有留言:
張貼留言