#!perl -l use Data::Dumper; use Data::Dump::Streamer; my ($x,$y); $x=\$y; $y=\$x; my $ary=[]; $ary->[0]=\$ary->[1]; $ary->[1]=\$ary->[0]; print "No purity\n---"; print Dumper([$x,$y]); print Dumper($ary); { print "With purity\n---"; local $Data::Dumper::Purity=1; print Dumper([$x,$y]); print Dumper($ary); } print "============\nWith DDS:"; print Dump([$x,$y]); print Dump($ary); print "************\nFergals Example With Dumper:"; { my %s=('key',1); my $s=\$s{'key'}; print Dumper(\%s,$s); print Dumper($s,\%s); print "============\nWith DDS:"; print Dump(\%s,$s); print Dump($s,\%s); } __END__ No purity --- $VAR1 = [ \\$VAR1->[0], ${$VAR1->[0]} ]; $VAR1 = [ \\$VAR1->[0], ${$VAR1->[0]} ]; With purity --- $VAR1 = [ \\do{my $o}, do{my $o} ]; ${${$VAR1->[0]}} = $VAR1->[0]; $VAR1->[1] = ${$VAR1->[0]}; $VAR1 = [ \\do{my $o}, do{my $o} ]; ${${$VAR1->[0]}} = $VAR1->[0]; $VAR1->[1] = ${$VAR1->[0]}; ============ With DDS: $ARRAY1 = [ \do { my $v = 'V: $ARRAY1->[1]' }, \do { my $v = 'V: $ARRAY1->[0]' } ]; ${$ARRAY1->[0]} = $ARRAY1->[1]; ${$ARRAY1->[1]} = $ARRAY1->[0]; $ARRAY1 = [ 'R: $ARRAY1->[1]', 'R: $ARRAY1->[0]' ]; $ARRAY1->[0] = \$ARRAY1->[1]; $ARRAY1->[1] = \$ARRAY1->[0]; ************ Fergals Example With Dumper: $VAR1 = { 'key' => 1 }; $VAR2 = \$VAR1->{'key'}; $VAR1 = \1; $VAR2 = { 'key' => ${$VAR1} }; ============ With DDS: $HASH1 = { key => 1 }; $SCALAR1 = \$HASH1->{key}; $SCALAR1 = 'R: $HASH1->{key}'; $HASH1 = { key => 1 }; $SCALAR1 = \$HASH1->{key};