我有一个无符号整数(32位)的数组,我想要将它们打包成二进制流: my @n = (4,8,15,16,23,42); my $foo = join('', map(pack('I', $_), @n)); # Ugly, isn't? $foo应该包含这个二进制流(根据字节序) 0000000 0000 0004 0000 0008 0000 000F 0000 0010 0000010 0000 0017 0000 002A 然后我想解包二进制流到一个数组中。 如何使用Perl正确地完成,如果可能的话只使用内置模块?
你所需要的是:my $packed = pack('I*', @nums); # unsigned int (varies in size) my $packed = pack('L*', @nums); # uint32_t
$a
和$b
保留用于sort
块中,使用它们进行其他操作被认为是不良实践。 - simbabquejoin '', map pack('L', $_), @nums;
- ikegami