sub Node::climb_up { my ($self, $proc) = @_; my $impl = __SUB__; @_ = ($self, sub { if ($self = $self->parent_row) { @_ = ($self, $proc); goto &$impl; } }); goto &$proc; }