如何在Perl中使用“打包/解包”?

时间:2011-12-27 23:36:16

标签: perl unpack

当我使用Ruby语言解析它时,我的数据被编码为64位网络字节顺序,如下所示:

def unpack_string(str)
   binary = str.unpack('m*').first
   binary.unpack('G*')
end

my_array_of_floats = unpack_string(str)

我怎样才能使用Perl pack / unpack做同样的事情?

1 个答案:

答案 0 :(得分:7)

查看Ruby文档,

  • m是MIME base64编码。
  • G是双精度网络(大端)字节顺序

Perl unpackbase64MIME::Base64不行。

在Perl的unpack中,d是双精度。您可以使用>指定字节顺序。

use MIME::Base64 qw( decode_base64 );
my @nums = unpack 'd>*', decode_base64 $str;
在Perl 5.10中引入了

>