将十六进制值附加到字符串

时间:2014-12-16 05:50:48

标签: perl ascii

$temp = 'abc'.0x12;
print $temp; # prints abc18

在将十六进制值附加到字符串时,它将转换为十进制值,最终结果为字符串。我想要的是十六进制的ascii值应该附加到字符串。

例如ascii中的0x12是DC2(设备控制2)。

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得到的。