If you need integers in the computer sense (IV/UV),
length(pack('J', 0)) >= 8
or
use Config qw( %Config );
$Config{uvsize} >= 8
uvsize refers to the size in bytes of such integers.
You need this if you use any of the following:
- the numbers as operands to bitwise operators
- the numbers as operands to `..`/`...`
- pack 'Q'/unpack 'Q'
- hex literals larger than 0xFFFF_FFFF
If you need integers in the mathematical sense, floats (NV) with at least 64 bits of precision would also do.
use Config qw( %Config );
$Config{uvsize} >= 8 ||
eval($Config{nv_overflows_integers_at}) >= 2**64
Every integer up and including eval($Config{nv_overflows_integers_at}) can be represented exactly as an NV.
Unless you've done something something, though, this is unlikely to get you more than 53-bits of precision.
|