代码之家  ›  专栏  ›  技术社区  ›  Geo

如何在Perl中将int打包为32位big endian?

  •  5
  • Geo  · 技术社区  · 15 年前

    考虑这个片段:

    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;
    

    问题是,试图从另一种语言来读,这似乎是小端语。有没有模板参数允许我把它写成big-endian?我不想在读书时做额外的工作。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Tim Palak Chaudhary    15 年前

    考虑使用“N”模板与包:

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

        2
  •  3
  •   Leon Timmermans    15 年前

    N 模板。

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

    看到了吗 pack