如何在Perl中获得$ foo的十六进制表示?

时间:2010-10-02 18:40:28

标签: perl hex

给定包含二进制数据的变量$foo,如何在Perl中获取$foo的十六进制表示?

2 个答案:

答案 0 :(得分:12)

如果$foo是包含任意数据的字符串,请使用unpack

my $hex = unpack('H*', $foo);

如果它只是一个整数,请使用sprintf

my $hex = sprintf('%x', $foo); # Or %X if you want upper-case letters

答案 1 :(得分:2)

$ perldoc -f hex
…
To present something as hex,
look into "printf", "sprintf", or "unpack".

==>

$hex = sprintf("%x", $foo);