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


in reply to Re: incorrect methods yield success
in thread incorrect methods yield success

reading the JSON::MaybeXS docs there could be some confusion as to the section "which works equivalently to the above (and in the usual tradition will accept a hashref instead of a hash, should you so desire).", specifically an optimistic interpretation of "the above"

Replies are listed 'Best First'.
Re^3: incorrect methods yield success
by haukex (Bishop) on Jun 26, 2020 at 11:23 UTC
    there could be some confusion ... specifically an optimistic interpretation of "the above"

    You appear to be referring to this:

    CONSTRUCTOR

    new

    With JSON::PP, JSON::XS and Cpanel::JSON::XS you are required to call mutators to set options, such as:

    my $json = $class->new->utf8(1)->pretty(1);

    Since this is a trifle irritating and noticeably un-perlish, we also offer:

    my $json = JSON::MaybeXS->new(utf8 => 1, pretty => 1);

    which works equivalently to the above (and in the usual tradition will accept a hashref instead of a hash, should you so desire).

    The resulting object is blessed into the underlying backend, which offers (at least) the methods encode and decode.

    The line of code the quoted text refers to doesn't show a use of encode or decode, nowehere in the documentation does it show the use of encode_json or decode_json as a method, and the line immediately following the quoted text specifically refers to the methods encode and decode. In addition, this module is simply a frontend for other modules such as Cpanel::JSON::XS ("The new() method in this module is technically a factory, not a constructor, because the objects it returns will NOT be blessed into the JSON::MaybeXS class."), whose documentation differentiates between the functional interface and the OO interface even more clearly. Taken in context, "above" IMHO pretty clearly refers to the line of code immediately above the sentence, not to something four subsections above it. (You are of course still free to submit a documentation patch.)