On 6/30/05, demerphq <[EMAIL PROTECTED]> wrote:
> Incidentally this is a pretty common mistake when handling REF's.
> Data::Dumper does it as does YAML and pretty much all the other
> storage tools that i have looked at, although Storable gets it right.
> Also, i should say that while this circular ref stuff does look
> bizarre it really is just a simple example of a general class of
> datastructure that many dumpers get wrong.
A similar problem is the following. (Similar in that solving one
should solve the other, assuming is_deeply does a parallel traverse of
the two structures.)
use Test::More tests=>2;
use Data::Dump::Streamer;
sub alias_ar { [EMAIL PROTECTED] }
my ($x,$y,$z)=(2,2,2);
is_deeply(alias_ar($x,$x), alias_ar($y,$z), "Alias");
is(scalar Dump(alias_ar($x,$x))->Out,scalar
Dump(alias_ar($y,$z))->Out,'Alias using DDS');
__END__
1..2
ok 1 - Alias
not ok 2 - Alias using DDS
# Failed test (d:\dev\Stuff\is_deeply.pl at line 10)
# got: '$ARRAY1 = [
# 2,
# 'A: $ARRAY1->[0]'
# ];
# alias_av(@$ARRAY1, 1, $ARRAY1->[0]);
# '
# expected: '$ARRAY1 = [
# ( 2 ) x 2
# ];
# '
# Looks like you failed 1 test of 2.
--
perl -Mre=debug -e "/just|another|perl|hacker/"