=head2 SYNOPSIS ... $node->climb_up(sub { my ($ancestor, $onTop_return) = @_; my $ret = $ancestor->doSomething(); return if $ret->smells(); # climb_up immediately returns () return do_whatever_with($ret); # i.e. any return values untouched $onTop_return->(@ignore_if_not); # Don't forget at the end! # otherwise ancestors' line processed ends by the parent # (blame perl it'd enforce an implied C ) }