On Wed, Nov 14, 2018 at 10:20 PM Tetsuo Handa <
penguin-ker...@i-love.sakura.ne.jp> wrote:

> Even on 32bit environments (at least for Linux), lstat() calls 64bit
version

When I check on Windows, I find that the value is actually an NV (not an IV
as I had expected).
I expect it's the same for you, in which case it's a 53-bit double
(unless $Config{nvsize} reports a value greater than 8).

You can test for this using Devel::Peek:

use strict;
use warnings;
use Config;
use Devel::Peek;
die "Usage 'perl try.pl filename'"
  unless $ARGV[0];
print "NV is ", $Config{nvsize}, " bytes\n";
my @s = lstat($ARGV[0]);
Dump $s[7];
print "\n################\n\n";
Dump $s[8];

__END__

Outputs:
NV is 8 bytes
SV = NV(0x1dbaccc) at 0x1d8e95c
  REFCNT = 1
  FLAGS = (NOK,pNOK)
  NV = 7948

################

SV = IV(0x1d8e9a8) at 0x1d8e9ac
  REFCNT = 1
  FLAGS = (IOK,pIOK)
  IV = 1481534816

Cheers,
Rob

Reply via email to