The %^H hash provides the same scoping semantics as $^H. This makes it useful for implementing lexically scoped pragmas. See 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.

%^H ハッシュは $^H と同じスコープの意味論を持ちます。 これはレキシカルスコープを持つプラグマを実装するのに便利です。 perlpragma を参照してください。 実行時にアクセスされると全てのエントリは文字列化されるので、 単純な値のみに対応します。 これは、例えばオブジェクトへのリファレンスはないということです。

Each time a statement completes being compiled, the current value of %^H is stored with that statement, and can later be retrieved via (caller($level))[10]. See "caller EXPR" in perlfunc.

文のコンパイルが完了する毎に、%^H の現在の値が文と共に 保管され、(caller($level))[10] として後で取得できます。 "caller EXPR" in perlfunc を参照してください。

When putting items into %^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 Foo::Bar should use keys such as Foo::Bar/baz.

%^H に追加するとき、他のハッシュのユーザーとの衝突を回避するために、 キーの使い方に関する慣習があります。 モジュールはモジュールの名前(主なパッケージの名前)と "/" 文字で始まる キーのみを使うべきです。 例えば、モジュール Foo::BarFoo::Bar/baz のようなキーを 使うべきです。

This variable was added in Perl v5.6.0.

この変数は Perl v5.6.0 で追加されました。