1

当我使用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做同样的事情?

4

1 回答 1

7

查看 Ruby 文档,

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

Perlunpack不做base64,但MIME::Base64做。

在 Perl 中unpackd是双精度。您可以使用>.

use MIME::Base64 qw( decode_base64 );
my @nums = unpack 'd>*', decode_base64 $str;

>在 Perl 5.10 中引入。

于 2011-12-28T00:54:17.670 回答