以下のバグはData-Visitor-0.11で直ってます。Diff from Data-Visitor-0.10 to Data-Visitor-0.11
Data::Visitor::Callback-v0.08#visit_objectのforeach内にバグがある気がしてならない。。。
foreach my $class ( @{ $self->class_callbacks } ) { last unless blessed($data); my $new_data = $self->callback( $class => $data ) if $data->isa($class); $data = $new_data unless $ignore; }
if $data->isa($class)←これ偽だったら$data空っぽになってしまわんかい?
ソース見たら、v0.08(2007年7月)からこうなってるっぽい。
http://search.cpan.org/diff?from=Data-Visitor-0.07&to=Data-Visitor-0.08
ホントはこうじゃね?
foreach my $class ( @{ $self->class_callbacks } ) { last unless blessed($data); if ( $data->isa($class) ) { my $new_data = $self->callback( $class => $data ) $data = $new_data unless $ignore; } }