You're the maintainer of Data::Compare? Interesting. Id very much like to chat with you about this module, specifically with regard to Data::Stream. I say this becuase I have considerable experience with this problem and actually wrote a considerable amount of unreleased code on the subject. I note that Data::Compare fails what I consider to be one of the nastiest test cases that exist in perl data structures. (Another test case is what I call the "dogpound" test originally posted by merlyn which afaik, only Data::Stream handles properly.) Don't feel bad, the only modules that don't fail this test are currently the (unreleased to cpan) Data::Stream and (the released to cpan) Data::BFDump (dont bother with the later, Data::Stream was specifically designed to replace Data::BFDump). Anyway, the test case is as follows:
use Data::Compare;
# this test is called "Scalar Cross" in both the Data::BFDump and Data
+::Stream test sets
my ($a,$x,$y)=([]);
$x=\$y;
$y=\$x;
$a->[0]=\$a->[1];
$a->[1]=\$a->[0];
print Compare([$x,$y],$a); # infinte loop
My email is on my homenode, id love to correspond with you about this subject if you're interested.
cheers
---
demerphq
First they ignore you, then they laugh at you, then they fight you, then you win.
-- Gandhi
|