autodie::Scope::GuardStack - Hook stack for managing scopes via %^H
use autodie::Scope::GuardStack;
my $stack = autodie::Scope::GuardStack->new
$^H{'my-key'} = $stack;
$stack->push_hook(sub {});
This class is a stack of hooks to be called in the right order as
scopes go away. The stack is only useful when inserted into %^H
and will pop hooks as their ``scope'' is popped. This is useful for
uninstalling or reinstalling subs in a namespace as a pragma goes
out of scope.
Due to how %^H works, this class is only useful during the
compilation phase of a perl module and relies on the internals of how
perl handles references in %^H . This module is not a part of
autodie's public API.
my $stack = autodie::Scope::GuardStack->new;
Creates a new autodie::Scope::GuardStack . The stack is initially
empty and must be inserted into %^H by the creator.
$stack->push_hook(sub {});
Add a sub to the stack. The sub will be called once the current
compile-time ``scope'' is left. Multiple hooks can be added per scope
Copyright 2013, Niels Thykier <niels@thykier.net>
This module is free software. You may distribute it under the
same terms as Perl itself.
|