内容

名称

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 的一部分。

方法

new

my $stack = autodie::Scope::GuardStack->new;

创建一个新的 autodie::Scope::GuardStack。该栈最初为空,必须由创建者插入 %^H

push_hook

$stack->push_hook(sub {});

将一个子程序添加到栈中。该子程序将在当前编译时“作用域”离开时被调用。每个作用域可以添加多个钩子。

作者

版权所有 2013,Niels Thykier <[email protected]>

许可证

此模块是自由软件。您可以根据与 Perl 本身相同的条款分发它。