$temp = 'abc'.0x12;
print $temp; # prints abc18
在将十六进制值附加到字符串时,它将转换为十进制值,最终结果为字符串。我想要的是十六进制的ascii值应该附加到字符串。
例如ascii中的0x12是DC2(设备控制2)。
答案 0 :(得分:3)
尝试使用chr:
my $a = 'abc'.chr 0x3e;
print $a;
答案 1 :(得分:2)
我认为Sly Raskal走在正确的轨道上,而不是%x
使用%c
,所以:
my $hex = 0x12;
my $ascii = sprintf "%c", $hex;
my $temp = 'abc' . $ascii;
我认为这会给出你想要的结果。我是从http://www.perlmonks.org/?node_id=191039得到的。