将整数数组转换为HEX字符串

时间:2013-11-14 18:01:23

标签: perl

我有一个带有一些整数的数组,我想将它转换为HEX值的字符串。这是我使用的代码,它工作得很好。我只是想知道是否有更简单的方法来做到这一点。

my @arr = get_tw() ; ##array of integer

for(my $i=0;$i<@arr;$i++){ 

  $arr[$i]= sprintf('%02x',$arr[$i]); ##overwrite with the hex value

} 

my $string  = join('',@arr); ##build a string from a array

THX

3 个答案:

答案 0 :(得分:4)

map。如果您不需要其他任何内容,这可以避免使用中间数组变量。

my $string = join '', map { sprintf '%02x', $_ } get_tw();

完整示例:

use warnings;
use strict;

sub get_tw { return 8 .. 15 }

my $string = join '', map { sprintf '%02x', $_ } get_tw();
print "$string\n";

__END__

08090a0b0c0d0e0f

答案 1 :(得分:4)

带有sprintf模板的字符串重复运算符:

my $string = sprintf "%02x" x @arr, @arr

答案 2 :(得分:4)

使用pack / unpack:

my $string = join '', unpack('H*', pack('c*',@arr));