perl-5.22.1
${^ENCODING}

DEPRECATED!!!

廃止予定!!!

The object reference to the Encode object that is used to convert the source code to Unicode. Thanks to this variable your Perl script does not have to be written in UTF-8. Default is undef.

ソースコードを Unicode に変換するために使われる Encode オブジェクトへの オブジェクトリファレンス 。 この変数のおかげで、Perl スクリプトを UTF-8 で書く必要がありません。 デフォルトは undef です。

Setting this variable to any other value than undef is deprecated due to fundamental defects in its design and implementation. It is planned to remove it from a future Perl version. Its purpose was to allow your non-ASCII Perl scripts to not 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 causes problems, such as affecting the operation of other modules that aren't expecting it, causing general mayhem. Its use can lead to segfaults.

この変数を undef 以外に設定することは、設計と実装の基本的な欠陥により 廃止予定です。 これは将来の Perl バージョンで削除することが計画されています。 この目的は、非 ASCII Perl スクリプトを UTF-8 で書く必要をなくすためでした; これは UTF-8 エンコードされたテキストで動作するエディタが一般的になる前は 有用でしたが、それはずっと前です。 これは、想定してない他のモジュールの操作に影響を与えるような問題を引き起こし、 一般的には破壊的です。 これはセグメンテーションフォルトを引き起こすこともあります。

If you need something like this functionality, you should use the encoding pragma, which is also deprecated, but has fewer nasty side effects.

この機能のような何かが必要な場合は、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.

この変数は Perl 5.8.2 で追加されました。