if ( $platform =~ /i486/smx ) { my ($byteoffset1,$byteoffset2,undef,$filenumber) = unpack'lssLL',${$buffer}; use Math::BigInt; my $sign=($byteoffset1&0x80000000); if($sign) { $byteoffset1^=-1; $byteoffset2^=-1; ++$byteoffeset2; $byteoffset2%=2**32; ++$byteoffset1 unless $byteoffset2; } my $i=new Math::BigInt $byteoffeset1; $i*=2**32; $i+=$byteoffset2; if ( $sign ) { $i=-$i ; } ; $byteoffset = $i; }