Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^3: Converting boolean values in XMLout

by ikegami (Pope)
on Jan 31, 2012 at 09:50 UTC ( #950918=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Converting boolean values in XMLout
in thread Converting boolean values in XMLout

decode_json uses JSON::true or JSON::false for the first instance it comes across, but then adds hash references to an existing true or false for all subsequent instances.

No, not quite.

When JSON::XS is loaded, it creates two objects

$JSON::XS::true = do { bless \(my $dummy = 1), "JSON::XS::Boolean" }; $JSON::XS::false = do { bless \(my $dummy = 0), "JSON::XS::Boolean" };

No other instances are ever created. No references to those are created. Those two objects are used everywhere.

There's probably a neat way to use Rmap to do the walking, but it was beyond my abilities I'm afraid. :(

It's refusing to visit the same reference twice. You could probably mess with its seen method (which appears to be a way at peeking at the module's internals).


Comment on Re^3: Converting boolean values in XMLout
Select or Download Code
Re^4: Converting boolean values in XMLout
by perlyogi (Acolyte) on Sep 26, 2012 at 07:53 UTC

    The exact code for perl to take into consideration multiple routes to the same node so that rmap_ref need not be called multiple times would be

    rmap_ref { $_[0]{seen} = {}; $_ = "$_" if JSON::is_bool($_) } $result;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://950918]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (14)
As of 2015-07-02 10:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (34 votes), past polls