JSON:: XS .
$ perl -e'
use strict;
use warnings;
use B qw( svref_2object SVf_IOK SVf_NOK SVf_POK );
use JSON::XS qw( decode_json );
my $data = decode_json(q{[ "4", 4, 4.0, 20000000000000000000 ]});
for my $i (0..$#$data) {
my $sv = svref_2object(\( $data->[$i] ));
my $flags = $sv->FLAGS;
printf("Scalar %s has %s\n",
$i,
join(",",
$flags & SVf_POK ? "PV" : (),
$flags & SVf_IOK ? "IV" : (),
$flags & SVf_NOK ? "NV" : (),
),
);
}
'
Scalar 0 has PV
Scalar 1 has IV
Scalar 2 has NV
Scalar 3 has PV
, JSON:: XS. JSON:: XS , .
JSON:: PP:
Scalar 0 has PV
Scalar 1 has IV
Scalar 2 has NV
Scalar 3 has NV