http://qs1969.pair.com?node_id=235746


in reply to Re: Data::XDumper
in thread Data::XDumper

So, if the problem is that Data::Dumper dumps some structures wrong, then submit a patch to Data::Dumper, rather than inventing something different that a lot of people won't know about and leaving the buggy code in a core distribution.

As for your example:

$x = 4; $xx = sub{\@_}->(\$x, \$x); $y = \4; $yy = sub{\@_}->($y, $y); bless \$xx->[0], 'Foo'; bless \$xx->[1], 'Bar'; bless \$yy->[0], 'Foo'; bless \$yy->[1], 'Bar'; use Data::Dumper; print Dumper $xx, $yy;
I suspect you haven't seen the Purity flag, which needs to be set in some more complex data, such as yours.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.

Replies are listed 'Best First'.
Re: •Re: Re: Data::XDumper
by demerphq (Chancellor) on Feb 16, 2003 at 17:08 UTC

    So, if the problem is that Data::Dumper dumps some structures wrong, then submit a patch to Data::Dumper, rather than inventing something different that a lot of people won't know about and leaving the buggy code in a core distribution.

    The same could be said of YAML and of Data::Dump and of Data::BFDump and of Data::DumpXML.

    Actually of them all Data::Dumper is the most accurate. (Data::BFDump is more accurate, but im not sure which version I have on CPAN. I think the one there is broken. Ive been meaning to update it for quite a while.)

    YAML is IMO the most broken. I have done comparison tests and it fails more than everything else. Please dont recommend YAML to people without a big caveat that it shouldnt be used on self referential structures.

    Ps: You once said more or less the same thing to me about eval(). :-)

    • Update:  
    Point taken about reinventing the wheel though. If you are going to do so, you need to put a lot of work in to make it really a better wheel.

    • Update:  
    Minor typographical changes.

    ---
    demerphq


Re: Data::XDumper
by xmath (Hermit) on Feb 16, 2003 at 16:49 UTC
    They're not really bugs.. they're more like design choices. There is no way to fix it except by radically changing its output format in an incompatible way. It's simply that Dumper's goal of eval-ability is in the way.

    And I also heavily dislike its output format :-)

    BTW, Dumper's purity flag has no effect in this case besides making the output even more unreadable