Your Windows Perl interpreter most likely uses 32-bit integers, and the one you use on Linux has 64-bit ints.
To verify this, run the shell command:
perl -V:ivsize
for each system. It should print ivsize='4'on 32-bit perls and ivsize='8'on 64-bit perls. You can also get this information in a Perl script using $Config{ivsize}from the Config module .
32- 64- perls, pack:
$num = unpack "l", pack "l", $num;
, , mpapec, :
$num &= 0xFFFFFFFF;
$num -= 2**32 if $num >= 2**31;