%^H

%^H 哈希提供与 $^H 相同的作用域语义。这使得它对于实现词法作用域的pragma非常有用。参见 perlpragma。所有条目在运行时被字符串化访问,因此只能容纳简单值。这意味着例如没有对对象的引用。

每次语句完成编译时,%^H 的当前值都会与该语句一起存储,并且稍后可以通过 (caller($level))[10] 检索。参见 "caller EXPR" in perlfunc.

将项目放入 %^H 时,为了避免与哈希的其他用户发生冲突,关于使用哪些键存在一个约定。模块应该只使用以模块名称(其主包的名称)和“/”字符开头的键。例如,模块 Foo::Bar 应该使用诸如 Foo::Bar/baz 之类的键。

此变量在 Perl v5.6.0 中添加。