Subject: | Overloaded ${} magic in dumped data is not bypassed |
The overloaded method ${} is called and not bypassed when DDS dumps an item. In several places you say $$item without checking for overloading and bypassing it.
use Data::Dump::Streamer;
my $o = bless \ [], 'T';
my $d = Dump();
$d->Data( $o ); # dies with ${} dereferring
$d->Out;
package T;
use Carp 'confess';
use overload( '${}' => sub { confess "No \${} should happen" },
'""' => sub { confess "No \"\" should happen" } );