Manpages - autodie_Scope_GuardStack.3perl
NAME
autodie::Scope::GuardStack - Hook stack for managing scopes via %^H
SYNOPSIS
use autodie::Scope::GuardStack; my $stack = autodie::Scope::GuardStack->new $^H{my-key} = $stack; $stack->push_hook(sub {});
DESCRIPTION
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.
Methods
new
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.
push_hook
$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
AUTHOR
Copyright 2013, Niels Thykier <niels@thykier.net>
LICENSE
This module is free software. You may distribute it under the same terms as Perl itself.