http://qs321.pair.com?node_id=11118555

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

use strict; use warnings; my @json = jsonsolute('JSON::MaybeXS', 'encode', 'decode'); print $json[0], "\n"; print $json[1]->{key}, "\n"; @json = jsonsolute(); sub jsonsolute { my ($jsonpackage, $jsonefunction, $jsondfunction) = @_; $jsonpackage ||= 'JSON::MaybeXS'; $jsonefunction ||= 'encode_json'; $jsondfunction ||= 'decode_json'; eval "require $jsonpackage"; if ($@) { print "package $jsonpackage missing\n"; } else { my $json = $jsonpackage->new(pretty => 1, canonical => 1); my $encoded = $json->$jsonefunction({key => 'value'}); my $decoded = $json->$jsondfunction('{"key":"value"}'); return $encoded, $decoded; } }
results in:
{ "key" : "value" } value encountered object 'Cpanel::JSON::XS=SCALAR(0x564228375740)', but neit +her allow_blessed, convert_blessed nor allow_tags settings are enable +d (or TO_JSON/FREEZE method missing) at ...(my $encoded)