autodie::Scope::GuardStack - 通过 %^H 管理作用域的钩子栈
use autodie::Scope::GuardStack;
my $stack = autodie::Scope::GuardStack->new
$^H{'my-key'} = $stack;
$stack->push_hook(sub {});
此类是一个钩子栈,用于在作用域消失时按正确顺序调用钩子。该栈只有在插入 %^H
时才有用,并且会在其“作用域”弹出时弹出钩子。这对于在 pragma 离开作用域时卸载或重新安装命名空间中的子程序很有用。
由于 %^H
的工作方式,此类仅在 perl 模块的编译阶段有用,并且依赖于 perl 处理 %^H
中引用的内部机制。此模块不是 autodie 公共 API 的一部分。
my $stack = autodie::Scope::GuardStack->new;
创建一个新的 autodie::Scope::GuardStack
。该栈最初为空,必须由创建者插入 %^H
。
$stack->push_hook(sub {});
将一个子程序添加到栈中。该子程序将在当前编译时“作用域”离开时被调用。每个作用域可以添加多个钩子。
版权所有 2013,Niels Thykier <[email protected]>
此模块是自由软件。您可以根据与 Perl 本身相同的条款分发它。