[英]How do I use “pack/unpack” in Perl?
My data is encoded as 64-bit network byte order when I parse it using the Ruby language as following: 当我使用Ruby语言解析数据时,我的数据被编码为64位网络字节顺序:
def unpack_string(str)
binary = str.unpack('m*').first
binary.unpack('G*')
end
my_array_of_floats = unpack_string(str)
How could I do the same thing using Perl's pack / unpack ? 我如何使用Perl的pack / unpack做同样的事情?
Looking at the Ruby documentation, 查看Ruby文档,
m
is MIME base64 encoding. m
是MIME base64编码。 G
is a double-precision, network (big-endian) byte order G
是双精度网络(大端)字节顺序 Perl's unpack
doesn't do base64 , but MIME::Base64 does. Perl的unpack
不会执行base64 ,但是MIME :: Base64会执行。
In Perl's unpack
, d
is a double precision. 在Perl的unpack
, d
是双精度。 You can specify the endianness using >
. 您可以使用>
指定字节序。
use MIME::Base64 qw( decode_base64 );
my @nums = unpack 'd>*', decode_base64 $str;
>
was introduced in Perl 5.10. >
在Perl 5.10中引入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.