=item *
-execute a subroutine in the context of an upper subroutine stack frame with L</uplevel>.
+execute a subroutine in the setting of an upper subroutine stack frame with L</uplevel>.
=back
}
my @inverses = target(1, 2, 4); # @inverses contains (0, 0.5, 0.25)
- my $count = target(1, 2, 4); # $target is 3
+ my $count = target(1, 2, 4); # $count is 3
L<Sub::Uplevel> also implements a pure-Perl version of C<uplevel>.
Both are identical, with the following caveats :
=item *
-L<Sub::Uplevel> globally overrides C<CORE::GLOBAL::caller>, while L<Scope::Upper> does not.
+L<Sub::Uplevel> globally overrides the Perl keyword C<caller>, while L<Scope::Upper> does not.
=back
...
# (*) Note that uplevel() will croak if you pass that scope frame,
- # because it can't target eval scopes.
+ # because it cannot target eval scopes.
=head1 EXPORT
L<Alias>, L<Hook::Scope>, L<Scope::Guard>, L<Guard>.
+L<Sub::Uplevel>.
+
L<Continuation::Escape> is a thin wrapper around L<Scope::Upper> that gives you a continuation passing style interface to L</unwind>.
It's easier to use, but it requires you to have control over the scope where you want to return.
L<Scope::Escape>.
-L<Sub::Uplevel> provides a pure-Perl implementation of L</uplevel>.
-
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.