On my Win32 perl 5.24.0 x64, I get 8byte size_t. On my ancient CentOS 4.6 perl 5.8.5 (got you beat with how ancient a perl I'm stuck with is), I see 4byte size_t. If you convert your 4byte negative into a 4byte unsigned, or into a float using float(4byte signed integer) + 2**32, you'll get your 3.8GB size:
perl -e 'printf "%08x => %.0f => %.3e\n", $_, $_+2**32, $_+2**32 for -426648576'I am thus betting you'll get -V:sizesize of 4 bytes, (edit:) but it will be a float rather than an int
edit2: improve parens in the paragraph. Also, to base the conversion on the sizesize, use Config; $Config{sizesize}==4 ? convert($filesize): $filesize...
edit3: clarify signed integer as the argument to float(); remove extra single-quote in edit2. Why didn't I see these before posting?
In reply to Re: Integer overflow in -s or file stat results
by pryrt
in thread Integer overflow in -s or file stat results
by Laurent_R
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |