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.
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(). :-)
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.
Minor typographical changes.