如何在Perl中将int打包为32位大端?

时间:2010-02-13 23:37:06

标签: perl binary endianness

请考虑以下代码段:

use strict;
use warnings;

my $data = "1";
my $packed = pack("I",$data);
open(my $file,">","test.bin") || die "error $!\n";
binmode $file;
print $file $packed;

问题是,尝试从另一种语言中读取它,这似乎是小端。是否有任何模板参数允许我将其写为大端?我想在阅读时避免做额外的工作。

2 个答案:

答案 0 :(得分:4)

考虑使用包含的“N”模板:

http://perldoc.perl.org/functions/pack.html

答案 1 :(得分:3)

解决方案是N模板。

my $packed = pack "N", $data;

有关所有包选项的列表,请参阅pack文档。