的字符串我有一个问题的理解和使用“VEC”关键字。如何十六进制转换为十六进制
我读其中的值存储在小端十六进制logpacket。在我的代码中,我必须使用unpack关键字将不同的字节解包为标量。
这里是我的问题的一个例子:
my @hexData1 = qw(50 65);
my $data = pack ('C*', @hexData1);
my $x = unpack("H4",$data); # At which point the hexadecimal number became a number
print $x."\n";
#my $foo = sprintf("%x", $foo);
print "$_-> " . vec("\x65\x50", $_, 1) . ", " for (0..15); # This works.
print "\n";
但我想用上面的语句通过以下方式联系。我不想用引号发送十六进制字符串。我想使用十六进制$ x的标量数组。但它不会工作。如何将我的$ x转换为十六进制字符串。这是我的要求。
print "$_-> " . vec($x, $_, 1).", " for (0..15); # This doesn't work.
print "\n";
我最终的目标是读取两个字节十六进制数的右边第三位。
如何使用的“VEC”命令?
当他有两个以上的字节时,'reverse'将不起作用,就像他在另一篇文章中评论过的那样。 – ikegami 2012-03-16 01:06:28