在Perl中,如何将二进制字符串转换为整数?

buk*_*zor 4 string binary perl

我有一个从二进制文件读取的四字节字符串,它应该表示一个整数.我如何设置整数?

例:

my $s = '\xa8e2~';
my $i = stoi($s);
printf "%X", $i;  #gives "0x7e3265a8"
Run Code Online (Sandbox Code Playgroud)

C中的解决方案很简单:

fread(&i,4,1,fp);
Run Code Online (Sandbox Code Playgroud)

Bra*_*ace 6

$i = unpack("s", $s)可能会工作,但它取决于签名/无符号和字节顺序,所以你可能会在这里结束:http://perldoc.perl.org/perlpacktut.html#Integers