perl-5.38.0
${^ENCODING}

This variable is no longer supported.

この変数はもはや対応していません。

It used to hold the object reference to the Encode object that was used to convert the source code to Unicode.

これはソースコードを Unicode に変換するために使われる Encode オブジェクトへの オブジェクトリファレンス を保持していました。

Its purpose was to allow your non-ASCII Perl scripts not to have to be written in UTF-8; this was useful before editors that worked on UTF-8 encoded text were common, but that was long ago. It caused problems, such as affecting the operation of other modules that weren't expecting it, causing general mayhem.

この目的は、非 ASCII Perl スクリプトを UTF-8 で書く必要をなくすためでした; これは UTF-8 エンコードされたテキストで動作するエディタが一般的になる前は 有用でしたが、それはずっと前です。 これは、想定してない他のモジュールの操作に影響を与えるような問題を引き起こし、 一般的には破壊的です。

If you need something like this functionality, it is recommended that use you a simple source filter, such as Filter::Encoding.

この機能のような何かが必要な場合は、Filter::Encoding のような 単純なソースフィルタを使うことを勧めます。

If you are coming here because code of yours is being adversely affected by someone's use of this variable, you can usually work around it by doing this:

あなたがここに来た理由が、誰かがこの変数を使うことであなたのコードが 意図せずに影響を受けたためなら、通常は次のようにして回避できます:

 local ${^ENCODING};

near the beginning of the functions that are getting broken. This undefines the variable during the scope of execution of the including function.

これを壊れてしまった関数の先頭付近に書きます。 これにより、この関数を含むスコープを実行する間この変数を未定義にします。

This variable was added in Perl 5.8.2 and removed in 5.26.0. Setting it to anything other than undef was made fatal in Perl 5.28.0.

この変数は Perl 5.8.2 で追加され、5.26.0 で削除されました。 Perl 5.28.0 から、これに undef 以外の値を設定すると致命的エラーになります。