sub Node::climb_up { my ($self, $proc) = @_; my ($i, $j, @return); my $return_onTop = sub { $j++; @_ }; while ( $self = $self->parent_row ) { @return = $proc->($self, $return_onTop); last if ++$i > $j; } continue { $j = $i; # falls $return_onTop mehrmals aufgerufen wurde } return @return; }