=over =item %^H X<%^H> The C<%^H> hash provides the same scoping semantics as L<C<$^H>|/$^H>. This makes it useful for implementing lexically scoped pragmas. See L<perlpragma>. All the entries are stringified when accessed at runtime, so only simple values can be accommodated. This means no references to objects, for example. Each time a statement completes being compiled, the current value of C<%^H> is stored with that statement, and can later be retrieved via C<(caller($level))[10]>. See L<perlfunc/caller EXPR>. When putting items into C<%^H>, in order to avoid conflicting with other users of the hash there is a convention regarding which keys to use. A module should use only keys that begin with the module's name (the name of its main package) and a "/" character. For example, a module C<Foo::Bar> should use keys such as C<Foo::Bar/baz>. This variable was added in Perl v5.6.0. =back