=encoding utf-8 =head1 NAME =begin original perl5180delta - what is new for perl v5.18.0 =end original perl5180delta - perl v5.18.0 での変更点 =head1 DESCRIPTION =begin original This document describes differences between the v5.16.0 release and the v5.18.0 release. =end original この文書は v5.16.0 リリースと v5.18.0 リリースの変更点を記述しています。 =begin original If you are upgrading from an earlier release such as v5.14.0, first read L, which describes differences between v5.14.0 and v5.16.0. =end original v5.14.0 のような以前のリリースから更新する場合は、まず v5.14.0 と v5.16.0 の違いについて記述している L を読んでください。 =head1 Core Enhancements (コアの拡張) =head2 New mechanism for experimental features (実験的機能のための新しい機構) =begin original Newly-added experimental features will now require this incantation: =end original 新しく追加された実験的機能には以下の決まり文句が必要になりました: no warnings "experimental::feature_name"; use feature "feature_name"; # would warn without the prev line =begin original There is a new warnings category, called "experimental", containing warnings that the L pragma emits when enabling experimental features. =end original "experimental" と呼ばれる新しい警告カテゴリができました; 実験的機能が 有効になったときに L プラグマによって出力される警告が含まれます。 =begin original Newly-added experimental features will also be given special warning IDs, which consist of "experimental::" followed by the name of the feature. (The plan is to extend this mechanism eventually to all warnings, to allow them to be enabled or disabled individually, and not just by category.) =end original 新しく追加された実験的機能はまた、"experimental::" に引き続いて機能の 名前からなる特殊な警告 ID が与えられます。 (計画では、この機構は最終的には全ての警告に拡張され、単にカテゴリ単位でなく、 ここに有効にしたり無効にしたりできるようになります。) =begin original By saying =end original 以下のようにすると no warnings "experimental::feature_name"; =begin original you are taking responsibility for any breakage that future changes to, or removal of, the feature may cause. =end original あなたはこの機能の将来の変更や削除が引き起こすかも知れないあらゆる破損に 責任を持つことになります。 =begin original Since some features (like C<~~> or C) now emit experimental warnings, and you may want to disable them in code that is also run on perls that do not recognize these warning categories, consider using the C pragma like this: =end original (C<~~> や C のような) 一部の機能は実験的警告を出力するようになり、 またこれらの警告カテゴリを認識しない perl でも実行するコードでこれらを 無効にしたいかもしれないので、以下のように C プラグマを使うことを 考慮してください: no if $] >= 5.018, 'warnings', "experimental::feature_name"; =begin original Existing experimental features may begin emitting these warnings, too. Please consult L for information on which features are considered experimental. =end original 既にある実験的機能もこれらの警告を出力し始めるようになります。 どの機能が実験的と考えられているかに関する情報については L を 参照してください。 =head2 Hash overhaul (ハッシュの見直し) =begin original Changes to the implementation of hashes in perl v5.18.0 will be one of the most visible changes to the behavior of existing code. =end original perl v5.18.0 でのハッシュの実装の変更は、既存のコードの振る舞いに対して もっとも目に見える変更の一つです。 =begin original By default, two distinct hash variables with identical keys and values may now provide their contents in a different order where it was previously identical. =end original デフォルトでは、同じキーと値を持つ二つの異なったハッシュ変数は、 以前は同じであったところで異なった順序で内容を提供するようになります。 =begin original When encountering these changes, the key to cleaning up from them is to accept that B and to act accordingly. =end original これらの変更に遭遇したら、きれいにする鍵は、B<ハッシュは順番のない集合> と いうことを受け入れてそれに従って動作することです。 =head3 Hash randomization (ハッシュのランダム化) =begin original The seed used by Perl's hash function is now random. This means that the order which keys/values will be returned from functions like C, C, and C will differ from run to run. =end original Perl のハッシュ関数が使う種はランダムになりました。 これは、C, C, C のような関数が返すキー/値の 順序は実行毎に異なるということです。 =begin original This change was introduced to make Perl's hashes more robust to algorithmic complexity attacks, and also because we discovered that it exposes hash ordering dependency bugs and makes them easier to track down. =end original この変更は、アルゴリズム的複雑性攻撃から Perl ハッシュをより堅牢に することと、ハッシュの順序に依存したバグが発見され、これによってより容易に 突き止められることが分かったからです。 =begin original Toolchain maintainers might want to invest in additional infrastructure to test for things like this. Running tests several times in a row and then comparing results will make it easier to spot hash order dependencies in code. Authors are strongly encouraged not to expose the key order of Perl's hashes to insecure audiences. =end original ツールチェーンのメンテナはこのようなことに対してテストするための追加の 基盤に投資したいかもしれません。 テストを連続して何回か実行してから結果を比べることで、コード中の ハッシュ順への依存を見つけ出すのがより容易になります。 作者は Perl のハッシュのキーの順序を安全でない聴衆に公開しないように強く 勧めます。 =begin original Further, every hash has its own iteration order, which should make it much more difficult to determine what the current hash seed is. =end original さらに、それぞれのハッシュは独自の反復順序を持ちます; これにより、現在の ハッシュの種が何かを決定するのが遥かに難しくなります。 =head3 New hash functions (新しいハッシュ関数) =begin original Perl v5.18 includes support for multiple hash functions, and changed the default (to ONE_AT_A_TIME_HARD), you can choose a different algorithm by defining a symbol at compile time. For a current list, consult the F document. Note that as of Perl v5.18 we can only recommend use of the default or SIPHASH. All the others are known to have security issues and are for research purposes only. =end original Perl v5.18 は複数のハッシュ関数への対応を含んでいて、デフォルトが (ONE_AT_A_TIME_HARD に) 変更され、コンパイル時にシンボルを定義することで 異なるアルゴリズムを選べます。 現在の一覧については、F 文書に当たってください。 Perl v5.18 現在、私たちはデフォルトまたは SIPHASH の使用のみを 推奨していることに注意してください。 そのほか全てはセキュリティ問題があることが知られていて、研究目的のため だけのものです。 =head3 PERL_HASH_SEED environment variable now takes a hex value (PERL_HASH_SEED 環境変数は 16 進数値を取るようになりました) =begin original C no longer accepts an integer as a parameter; instead the value is expected to be a binary value encoded in a hex string, such as "0xf5867c55039dc724". This is to make the infrastructure support hash seeds of arbitrary lengths, which might exceed that of an integer. (SipHash uses a 16 byte seed.) =end original C は整数を引数として受け付けなくなりました; 代わりに値は "0xf5867c55039dc724" のような、16 進文字列でエンコードされたバイナリ値を 想定するようになりました。 これは整数を超えるかも知れない任意の長さのハッシュの種に対応する基盤を 作るためです。 (SipHash は 16 バイトの種を使います。) =head3 PERL_PERTURB_KEYS environment variable added (PERL_PERTURB_KEYS 環境変数が追加されました) =begin original The C environment variable allows one to control the level of randomization applied to C and friends. =end original C 環境変数は C およびその親類に適用されるランダム化の レベルを制御出来ます。 =begin original When C is 0, perl will not randomize the key order at all. The chance that C changes due to an insert will be the same as in previous perls, basically only when the bucket size is changed. =end original C が 0 なら、perl はキー順序を全くランダム化しません。 挿入によって C が変更される機会は以前の perl と同じで、基本的に バケツサイズが変わるときだけです。 =begin original When C is 1, perl will randomize keys in a non-repeatable way. The chance that C changes due to an insert will be very high. This is the most secure and default mode. =end original C が 1 なら、perl は再現出来ない方法でキーを ランダム化します。 挿入によって C が変更される機会はとても高いです。 これはもっとも安全でデフォルトのモードです。 =begin original When C is 2, perl will randomize keys in a repeatable way. Repeated runs of the same program should produce the same output every time. =end original C が 2 なら、perl はキーを再現可能な方法で ランダム化します。 同じプログラムを繰り返し実行すると毎回同じ出力を生成します。 =begin original C implies a non-default C setting. Setting C (exactly one 0) implies C (hash key randomization disabled); settng C to any other value implies C (deterministic and repeatable hash key randomization). Specifying C explicitly to a different level overrides this behavior. =end original C は非デフォルトの C 設定という意味を 含みます。 C (正確に一つの 0) に設定すると C (ハッシュキーランダム化の無効化) という意味を含みます; C をその他の値に設定すると、C (決定的で 再現可能なハッシュキーランダム化) という意味を含みます。 明示的に C を異なったレベルに指定するとこの振る舞いを 上書きします。 =head3 Hash::Util::hash_seed() now returns a string (Hash::Util::hash_seed() は文字列を返すようになりました) =begin original Hash::Util::hash_seed() now returns a string instead of an integer. This is to make the infrastructure support hash seeds of arbitrary lengths which might exceed that of an integer. (SipHash uses a 16 byte seed.) =end original Hash::Util::hash_seed() は整数ではなく文字列を返すようになりました。 これは整数を超えるかも知れない任意の長さのハッシュの種に対応する基盤を 作るためです。 (SipHash は 16 バイトの種を使います。) =head3 Output of PERL_HASH_SEED_DEBUG has been changed (PERL_HASH_SEED_DEBUG の出力は変更されました) =begin original The environment variable PERL_HASH_SEED_DEBUG now makes perl show both the hash function perl was built with, I the seed, in hex, in use for that process. Code parsing this output, should it exist, must change to accommodate the new format. Example of the new format: =end original 環境変数 PERL_HASH_SEED_DEBUG は、perl がビルドされたハッシュ関数 I<および>、 そのプロセスで使っている種の 16 進表記の両方を表示するようになりました。 この出力をパースするコードは、存在するはずですが、新しい形式に適合するように 変更しなければなりません: 新しい形式の例は: $ PERL_HASH_SEED_DEBUG=1 ./perl -e1 HASH_FUNCTION = MURMUR3 HASH_SEED = 0x1476bb9f =head2 Upgrade to Unicode 6.2 (Unicode 6.2 への更新) =begin original Perl now supports Unicode 6.2. A list of changes from Unicode 6.1 is at L. =end original Perl は Unicode 6.2 に対応するようになりました。 Unicode 6.1 からの変更点の一覧は L にあります。 =head2 Character name aliases may now include non-Latin1-range characters (文字名別名は非 Latin1 の範囲の文字も含むようになりました) =begin original It is possible to define your own names for characters for use in C<\N{...}>, C, etc. These names can now be comprised of characters from the whole Unicode range. This allows for names to be in your native language, and not just English. Certain restrictions apply to the characters that may be used (you can't define a name that has punctuation in it, for example). See L. =end original C<\N{...}>, C などで使うための文字に対する独自の名前を 定義することができます。 これらの名前は Unicode の範囲全体の文字で構成できるようになりました。 これにより、名前に英語だけでなくネイティブな名前を付けられるようになります。 使える文字にはある種の制限が適用されます (例えば、句読点を含む名前は 定義できません)。 L を参照してください。 =head2 New DTrace probes (新しい DTrace プローブ) =begin original The following new DTrace probes have been added: =end original 以下の新しい DTrace プローブが追加されました: =over 4 =item * C =item * C =item * C =back =head2 C<${^LAST_FH}> =begin original This new variable provides access to the filehandle that was last read. This is the handle used by C<$.> and by C and C without arguments. =end original この新しい変数は、最後に読み込んだファイルハンドルへのアクセスを提供します。 これは、C<$.> および、引数なしの C および C で使われる ハンドルです。 =head2 Regular Expression Set Operations (正規表現集合演算) =begin original This is an B feature to allow matching against the union, intersection, etc., of sets of code points, similar to L. It can also be used to extend C processing to [bracketed] character classes, and as a replacement of user-defined properties, allowing more complex expressions than they do. See L. =end original これは、L と同様に、符号位置の集合の和集合、 共有集合などに対してマッチングできるようにする B<実験的な> 機能です。 これはまた拡張 C 処理を [大かっこ] 文字クラスで使えるようにし、 ユーザー定義特性の代わりとして、それがするよりも複雑な式が可能になりました。 L を参照してください。 =head2 Lexical subroutines (レキシカルサブルーチン) =begin original This new feature is still considered B. To enable it: =end original この新機能はまだ B<実験的> と考えられています。 有効にするには: use 5.018; no warnings "experimental::lexical_subs"; use feature "lexical_subs"; =begin original You can now declare subroutines with C, C, and C. (C requires that the "state" feature be enabled, unless you write it as C.) =end original C, C, C でサブルーチンを 宣言できます。 (C は、C と書かない限り、"state" 機能が 有効であることが必要です。) =begin original C creates a subroutine visible within the lexical scope in which it is declared. The subroutine is shared between calls to the outer sub. =end original C は、宣言されたレキシカルスコープから見えるサブルーチンを 作ります。 このサブルーチンは外側のサブルーチンからの呼び出しの間で共有されます。 =begin original C declares a lexical subroutine that is created each time the enclosing block is entered. C is generally slightly faster than C. =end original C は、閉じブロックに入る毎に作成されるレキシカルなサブルーチンを 宣言します。 C は一般的に C より少し高速です。 =begin original C declares a lexical alias to the package subroutine of the same name. =end original C は、同じ名前のパッケージサブルーチンへのレキシカルな別名を 宣言します。 =begin original For more information, see L. =end original さらなる情報については、L を参照してください。 =head2 Computed Labels (計算ラベル) =begin original The loop controls C, C and C, and the special C operator, now allow arbitrary expressions to be used to compute labels at run time. Previously, any argument that was not a constant was treated as the empty string. =end original ループ制御 C, C, C および特殊な C 演算子は、 実行時にラベルを計算するために使えるように、任意の式を使えるように なりました。 以前は、定数以外の任意の引数は空文字列として扱われていました。 =head2 More CORE:: subs (より多くの CORE:: サブルーチン) =begin original Several more built-in functions have been added as subroutines to the CORE:: namespace - namely, those non-overridable keywords that can be implemented without custom parsers: C, C, C, C, C, C, C, C, C, and C. =end original いくつかの組み込み関数が CORE:: 名前空間のサブルーチンとして追加されました - つまり、以下の、カスタムパーサなしで実装可能なオーバーライドできない キーワードです: C, C, C, C, C, C, C, C, C, C。 =begin original As some of these have prototypes, C has been changed to not make a distinction between overridable and non-overridable keywords. This is to make C consistent with C. =end original これらの一部はプロトタイプを持ち、C は オーバーライドできるキーワードとできないキーワードで違いが起きないように 変更されました。 これは C が C と一貫性を 持つようにするためです。 =head2 C with negative signal names (負数のシグナル名の C) =begin original C has always allowed a negative signal number, which kills the process group instead of a single process. It has also allowed signal names. But it did not behave consistently, because negative signal names were treated as 0. Now negative signals names like C<-INT> are supported and treated the same way as -2 [perl #112990]. =end original C は常に負のシグナル番号が使えて、その場合単一のプロセスではなく プロセスグループを kill します。 そしてシグナル名も使えました。 しかしこれは一貫性のある振る舞いではありませんでした; なぜなら負の シグナル名は0 として扱われていたからです。 C<-INT> のような負のシグナル名に対応するようになり、-2 を指定されたのと 同じように扱います [perl #112990]。 =head1 Security (セキュリティ) =head2 See also: hash overhaul (関連項目: ハッシュの見直し) =begin original Some of the changes in the L were made to enhance security. Please read that section. =end original L の変更の一部はセキュリティを向上させています。 当該の節を参照してください。 =head2 C security warning in documentation (文書中の C セキュリティ警告) =begin original The documentation for C now includes a section which warns readers of the danger of accepting Storable documents from untrusted sources. The short version is that deserializing certain types of data can lead to loading modules and other code execution. This is documented behavior and wanted behavior, but this opens an attack vector for malicious entities. =end original C の文書に、信頼できないソースから Storage データを受け付けることの 危険性を読者に警告する章が追加されました。 短く言うと、ある種のデータをデシリアライズすると、モジュールの読み込みや その他のコード実行を引き起こすことがあります。 これは文書化された振る舞いであり求められている振る舞いですが、これは 悪意ある実体からの攻撃が可能です。 =head2 C allowed code injection via a malicious template (C が不正なテンプレートによってコードインジェクションを許していました) =begin original If users could provide a translation string to Locale::Maketext, this could be used to invoke arbitrary Perl subroutines available in the current process. =end original ユーザーが Locale::Maketext に変換文字列を提供できると、現在のプロセスで 利用可能な任意の Perl サブルーチンを起動することができました。 =begin original This has been fixed, but it is still possible to invoke any method provided by C itself or a subclass that you are using. One of these methods in turn will invoke the Perl core's C subroutine. =end original これは修正されましたが、C 自身や、使っているサブクラスで 提供されている任意のメソッドを起動することが可能です。 これらのメソッドの一つは、Perl コアの C サブルーチンを 起動できます。 =begin original In summary, allowing users to provide translation strings without auditing them is a bad idea. =end original まとめると、監査なしにユーザーに変換文字列を提供させるのは悪い考えです。 =begin original This vulnerability is documented in CVE-2012-6329. =end original この脆弱性は CVE-2012-6329 として記録されました。 =head2 Avoid calling memset with a negative count (負数で memset を呼び出さなくなりました) =begin original Poorly written perl code that allows an attacker to specify the count to perl's C string repeat operator can already cause a memory exhaustion denial-of-service attack. A flaw in versions of perl before v5.15.5 can escalate that into a heap buffer overrun; coupled with versions of glibc before 2.16, it possibly allows the execution of arbitrary code. =end original perl の C 文字列繰り返し演算子のカウントを攻撃者が指定できるような 不適切に書かれたコードは、メモリ枯渇サービス拒否攻撃を引き起こしていました。 v5.15.5 以前のバージョンの欠点により、これがヒープバッファオーバーランに 昇格していました; 2.16 以前のバージョンの glibc では、任意のコードの実行を 許す可能性がありました。 =begin original The flaw addressed to this commit has been assigned identifier CVE-2012-5195 and was researched by Tim Brown. =end original これに関わる欠点は識別子 CVE-2012-5195 が割り当てられ、Tim Brown によって 調査されました。 =head1 Incompatible Changes (互換性のない変更) =head2 See also: hash overhaul (関連項目: ハッシュの見直し) =begin original Some of the changes in the L are not fully compatible with previous versions of perl. Please read that section. =end original L の変更の一部は以前のバージョンの perl との 完全な互換性はありません。 当該の節を参照してください。 =head2 An unknown character name in C<\N{...}> is now a syntax error (C<\N{...}> での不明な文字名は文法エラーになりました) =begin original Previously, it warned, and the Unicode REPLACEMENT CHARACTER was substituted. Unicode now recommends that this situation be a syntax error. Also, the previous behavior led to some confusing warnings and behaviors, and since the REPLACEMENT CHARACTER has no use other than as a stand-in for some unknown character, any code that has this problem is buggy. =end original 以前は、これは警告され、Unicode REPLACEMENT CHARACTER に 置き換えられていました。 Unicode は今ではこのような状況では文法エラーにすることを勧めています。 また、以前の振る舞いは一部の混乱させる警告と振る舞いを引き起こし、 REPLACEMENT CHARACTER は一部の不明な文字の代わり以外に使い道がないので、 この問題を持つコードはバグがちです。 =head2 Formerly deprecated characters in C<\N{}> character name aliases are now errors. (以前は廃止予定だった C<\N{}> 文字名別名での文字はエラーになるようになりました) =begin original Since v5.12.0, it has been deprecated to use certain characters in user-defined C<\N{...}> character names. These now cause a syntax error. For example, it is now an error to begin a name with a digit, such as in =end original v5.12.0 から、ユーザー定義 C<\N{...}> 文字名での一部の文字の使用は 廃止予定になりました。 これらは文法エラーになりました。 例えば、以下のように数値で始まる名前はエラーになります my $undraftable = "\N{4F}"; # Syntax error! =begin original or to have commas anywhere in the name. See L. =end original あるいは名前のどこかにカンマがある場合もそうです。 L を参照してください。 =head2 C<\N{BELL}> now refers to U+1F514 instead of U+0007 (C<\N{BELL}> は U+0007 ではなく U+1F514 を参照するようになりました) =begin original Unicode 6.0 reused the name "BELL" for a different code point than it traditionally had meant. Since Perl v5.14, use of this name still referred to U+0007, but would raise a deprecation warning. Now, "BELL" refers to U+1F514, and the name for U+0007 is "ALERT". All the functions in L have been correspondingly updated. =end original Unicode 6.0 は "BELL" という名前を、伝統的に使われていたものと異なる 符号位置に再利用しました。 Perl v5.14 から、この名前を使っても U+0007 を参照したままでしたが、 廃止予定警告が出ていました。 今では、"BELL" は U+1F514 を参照し、U+0007 の名前は "ALERT" になりました。 L の全ての関数はこれに対応するように更新されました。 =head2 New Restrictions in Multi-Character Case-Insensitive Matching in Regular Expression Bracketed Character Classes (正規表現大かっこ文字クラス中の複数文字大文字小文字無視マッチングの新しい制限) =begin original Unicode has now withdrawn their previous recommendation for regular expressions to automatically handle cases where a single character can match multiple characters case-insensitively, for example, the letter LATIN SMALL LETTER SHARP S and the sequence C. This is because it turns out to be impracticable to do this correctly in all circumstances. Because Perl has tried to do this as best it can, it will continue to do so. (We are considering an option to turn it off.) However, a new restriction is being added on such matches when they occur in [bracketed] character classes. People were specifying things such as C, and being surprised that it matches the two character sequence C (since LATIN SMALL LETTER SHARP S occurs in this range). This behavior is also inconsistent with using a property instead of a range: C<\p{Block=Latin1}> also includes LATIN SMALL LETTER SHARP S, but C does not match C. The new rule is that for there to be a multi-character case-insensitive match within a bracketed character class, the character must be explicitly listed, and not as an end point of a range. This more closely obeys the Principle of Least Astonishment. See L. Note that a bug [perl #89774], now fixed as part of this change, prevented the previous behavior from working fully. =end original Unicode は、正規表現で単一の文字が大文字小文字を無視して複数の文字に マッチングできるとき、自動的に大文字小文字を扱うという以前の推奨を 取り下げました; 例えば、LATIN SMALL LETTER SHARP S と並び C です。 これは、どのような状態でもこれを正しく行うのは不可能であるということが 分かったからです。 Perl はこれをできるだけしようとするので、引き続きそうします。 (私たちはこれをオフにするオプションを考慮しています。) しかし、[大かっこ] 文字クラスでこのようなマッチングが起きるときの新しい制限が 追加されていました。 人々は C なものを指定して、二文字並び C にマッチングして 驚いていました (LATIN SMALL LETTER SHARP S はこの範囲にあるからです)。 この振る舞いは範囲ではなく特性を使った場合と一貫性がありません: C<\p{Block=Latin1}> は LATIN SMALL LETTER SHARP S も含みますが、 C は C にマッチングしません。 新しい規則は、大かっこ文字クラス内での複数文字大文字小文字無視マッチングに 関するもので、文字は明示的に一覧に挙がっていなければならず、範囲の 端点であってはなりません。 これはより密接に驚き最小の原則に従います。 L を参照してください。 バグ [perl #89774] はこの変更の一部として修正され、以前の振る舞いが 完全に動作することを妨げることに注意してください。 =head2 Explicit rules for variable names and identifiers (変数名と識別子の明示的な規則) =begin original Due to an oversight, single character variable names in v5.16 were completely unrestricted. This opened the door to several kinds of insanity. As of v5.18, these now follow the rules of other identifiers, in addition to accepting characters that match the C<\p{POSIX_Punct}> property. =end original 不注意により、5.16 での単一文字の変数名は完全に無制限になっていました。 これは様々な種類の狂気への扉を開いていました。 v5.18 から、その他の識別子の規則に従って、さらに C<\p{POSIX_Punct}> 特性に マッチングする文字を受け付けます。 =begin original There is no longer any difference in the parsing of identifiers specified by using braces versus without braces. For instance, perl used to allow C<${foo:bar}> (with a single colon) but not C<$foo:bar>. Now that both are handled by a single code path, they are both treated the same way: both are forbidden. Note that this change is about the range of permissible literal identifiers, not other expressions. =end original もはや中かっこありと中かっこなしで指定された識別子のパースに違いは ありません。 例えば、perl は (シングルコロン付きの) C<${foo:bar}> は許していましたが C<$foo:bar> は許していませんでした。 今では両方とも単一のコードパスで扱われ、どちらも同じ方法で扱われます: どちらも禁止されます。 この変更は許可されるリテラルな識別子の範囲に関するものであり、その他の式には 関係ないことに注意してください。 =head2 Vertical tabs are now whitespace (垂直タブは空白になりました) =begin original No one could recall why C<\s> didn't match C<\cK>, the vertical tab. Now it does. Given the extreme rarity of that character, very little breakage is expected. That said, here's what it means: =end original なぜ C<\s> で垂直タブ C<\cK> にマッチングしないのか、誰も 思い出せませんでした。 今ではマッチングします。 この文字自体がとても稀なので、破損はほとんど起こらないと想定されています。 つまり、これは以下を意味します: =begin original C<\s> in a regex now matches a vertical tab in all circumstances. =end original 正規表現中の C<\s> は全ての状況で垂直タブにマッチングするようになりました。 =begin original Literal vertical tabs in a regex literal are ignored when the C modifier is used. =end original 正規表現中のリテラルな垂直タブは、C 修飾子が使われると無視されます。 =begin original Leading vertical tabs, alone or mixed with other whitespace, are now ignored when interpreting a string as a number. For example: =end original 単独または他の空白と混ぜられた先頭の垂直タブは、文字列を数値として 解釈するときに無視されるようになりました。 例えば: $dec = " \cK \t 123"; $hex = " \cK \t 0xF"; say 0 + $dec; # was 0 with warning, now 123 say int $dec; # was 0, now 123 say oct $hex; # was 0, now 15 =head2 C and C have been heavily reworked (C と C は大幅に再作業されました) =begin original The implementation of this feature has been almost completely rewritten. Although its main intent is to fix bugs, some behaviors, especially related to the scope of lexical variables, will have changed. This is described more fully in the L section. =end original この機能の実装はほとんど完全に書き直されました。 主な目的はバグの修正ですが、一部の振る舞い、特にレキシカル変数に関連する ものは変更されました。 これは L の節でより完全に記述されています。 =head2 Stricter parsing of substitution replacement (置換のより厳密なパース) =begin original It is no longer possible to abuse the way the parser parses C like this: =end original パーサが C を以下のようにパースすることを悪用することはもはや できなくなりました: %_=(_,"Just another "); $_="Perl hacker,\n"; s//_}->{_/e;print =head2 C now aliases the global C<$_> (C はグローバルな C<$_> のエイリアスになりました) =begin original Instead of assigning to an implicit lexical C<$_>, C now makes the global C<$_> an alias for its argument, just like C. However, it still uses lexical C<$_> if there is lexical C<$_> in scope (again, just like C) [perl #114020]. =end original C は、ちょうど C と同様に、暗黙のレキシカルな C<$_> ではなく グローバルな C<$_> を引数への別名とするようになりました。 しかし、(再び C と同様に) レキシカルな C<$_> がスコープ内にあれば レキシカルな C<$_> を使います [perl #114020]。 =head2 The smartmatch family of features are now experimental (スマートマッチングの仲間の機能は実験的なものになりました) =begin original Smart match, added in v5.10.0 and significantly revised in v5.10.1, has been a regular point of complaint. Although there are a number of ways in which it is useful, it has also proven problematic and confusing for both users and implementors of Perl. There have been a number of proposals on how to best address the problem. It is clear that smartmatch is almost certainly either going to change or go away in the future. Relying on its current behavior is not recommended. =end original v5.10.0 で追加され、v5.10.1 で大きく改訂されたスマートマッチングは、 いつも不満な点でした。 これを有用にする方法はいくつかありますが、問題があり、Perl のユーザーと 実装者の両方を混乱させることがわかっています。 この問題をもっともよく対処するための多くの提案がありました。 スマートマッチングは将来変更されるか削除されることはほぼ確実です。 現在の振る舞いに依存することは勧められません。 =begin original Warnings will now be issued when the parser sees C<~~>, C, or C. To disable these warnings, you can add this line to the appropriate scope: =end original パーサが C<~~>, C, C を見つけたときに警告が 発生するようになりました。 これらの警告を無効にするには、適切なスコープに以下の行を追加できます: no if $] >= 5.018, "experimental::smartmatch"; =begin original Consider, though, replacing the use of these features, as they may change behavior again before becoming stable. =end original しかし、振る舞いは安定するまでに再び変更されるかもしれないので、これらの 機能の使用を置き換えることを考慮してください。 =head2 Lexical C<$_> is now experimental (レキシカルな C<$_> は実験的なものになりました) =begin original Since it was introduced in Perl v5.10, it has caused much confusion with no obvious solution: =end original これが Perl v5.10 で導入されてから、明らかな解決方法のない多くの混乱を 引き起こしていました: =over =item * =begin original Various modules (e.g., List::Util) expect callback routines to use the global C<$_>. C does not work as one would expect. =end original 様々なモジュール (例えば List::Util) はコールバックルーチンがグローバルな C<$_> を使うことを想定しています。 C は想定通りに 動作しません。 =item * =begin original A C declaration earlier in the same file can cause confusing closure warnings. =end original 同じファイルのより前にある C 宣言は混乱したクロージャ警告を 引き起こすことがあります。 =item * =begin original The "_" subroutine prototype character allows called subroutines to access your lexical C<$_>, so it is not really private after all. =end original "_" サブルーチンプロトタイプ文字は呼び出しサブルーチンがレキシカルな C<$_> にアクセスできるようにするので、実際には全く プライベートではありません。 =item * =begin original Nevertheless, subroutines with a "(@)" prototype and methods cannot access the caller's lexical C<$_>, unless they are written in XS. =end original それにも関わらず、"(@)" プロトタイプを持つサブルーチンおよびメソッドは、 XS で書かれいないかぎり呼び出し元のレキシカル C<$_> にアクセスできません。 =item * =begin original But even XS routines cannot access a lexical C<$_> declared, not in the calling subroutine, but in an outer scope, iff that subroutine happened not to mention C<$_> or use any operators that default to C<$_>. =end original しかし XS ルーチンでも呼び出し側のサブルーチンで宣言された レキシカルな C<$_> にはアクセスできません; サブルーチンがたまたま C<$_> に言及したり デフォルトが C<$_> であるような演算子を使っていなかった場合のみ、 外側のスコープのものにはアクセスできます。 =back =begin original It is our hope that lexical C<$_> can be rehabilitated, but this may cause changes in its behavior. Please use it with caution until it becomes stable. =end original レキシカルな C<$_> が復旧可能であるというのは私たちの希望ですが、これは 振る舞いの変更を引き起こすでしょう。 安定するまで、注意して使ってください。 =head2 readline() with C<$/ = \N> now reads N characters, not N bytes (C<$/ = \N> での readline() は N バイトではなく N 文字を読み込むようになりました) =begin original Previously, when reading from a stream with I/O layers such as C, the readline() function, otherwise known as the C<< <> >> operator, would read I bytes from the top-most layer. [perl #79960] =end original 以前は、C のような I/O 層を使ってストリームから読み込むとき、 readline() 関数、あるいは C<< <> >> 演算子と知られているものは、 最上位の層から I バイト読み込んでいました。 [perl #79960] =begin original Now, I characters are read instead. =end original 代わりに I 文字読み込まれるようになりました。 =begin original There is no change in behaviour when reading from streams with no extra layers, since bytes map exactly to characters. =end original 追加の層なしでストリームから読み込むときには振る舞いは変わりません; なぜなら バイトは正確に文字にマッピングされるからです。 =head2 Overridden C is now passed one argument (オーバーライドされた C は一つの引数を渡すようになりました) =begin original C overrides used to be passed a magical undocumented second argument that identified the caller. Nothing on CPAN was using this, and it got in the way of a bug fix, so it was removed. If you really need to identify the caller, see L on CPAN. =end original C をオーバーライドしたものは、呼び出し元を識別するマジカルで 文書化されていない第 2 引数を渡されていました。 CPAN でこれを使っているものはなく、バグ修正の邪魔になるので、 取り除かれました。 どうしても呼び出し元を識別する必要があるなら、CPAN の L を 参照してください。 =head2 Here doc parsing (ヒヤドキュメントのパース) =begin original The body of a here document inside a quote-like operator now always begins on the line after the "< lists used to fool the parser into thinking they were always surrounded by parentheses. This permitted some surprising constructions such as C, which should really be written C. These would sometimes get the lexer into the wrong state, so they didn't fully work, and the similar C that one might expect to be permitted never worked at all. =end original C リストは、常にかっこで囲まれているとパーサが考えるように騙すために 使われていました。 これにより、実際には C と書くべきところで C のような驚かされる構文が可能でした。 これは時々構文解析器を間違った状態にするので、完全には動作せず、 許されると想定するかも知れない似たような C は 全く動作しませんでした。 =begin original This side effect of C has now been abolished. It has been deprecated since Perl v5.13.11. It is now necessary to use real parentheses everywhere that the grammar calls for them. =end original C のこの副作用は撤廃されました。 これは Perl v5.13.11 から廃止予定でした。 文法が必要としているところではどこでも、実際のかっこを使うことが 必要になりました。 =head2 Interaction of lexical and default warnings (レキシカルとデフォルトの警告の相互作用) =begin original Turning on any lexical warnings used first to disable all default warnings if lexical warnings were not already enabled: =end original 何らかのレキシカル警告をオンにするとき、レキシカル警告が既に有効でなければ、 まず全てのデフォルト警告を無効にしていました: $*; # deprecation warning use warnings "void"; $#; # void warning; no deprecation warning =begin original Now, the C, C, C, C and C warnings categories are left on when turning on lexical warnings (unless they are turned off by C, of course). =end original C, C, C, C, C の警告カテゴリは、 レキシカルな警告がオンになったときにも (もちろん C で オフにしない限り) オンのままになりました。 =begin original This may cause deprecation warnings to occur in code that used to be free of warnings. =end original これは、警告が出ていなかったコードで廃し予定警告を引き起こすかもしれません。 =begin original Those are the only categories consisting only of default warnings. Default warnings in other categories are still disabled by C<< use warnings "category" >>, as we do not yet have the infrastructure for controlling individual warnings. =end original これらはデフォルト警告からなるカテゴリのみです。 その他のカテゴリのデフォルト警告はやはり C<< use warnings "category" >> で 無効化されます; なぜなら個々の警告を制御する基盤はまだないからです。 =head2 C and C (C と C) =begin original Due to an accident of history, C and C were equivalent to a plain C, so one could even create an anonymous sub with C. These are now disallowed outside of the "lexical_subs" feature. Under the "lexical_subs" feature they have new meanings described in L. =end original 歴史上の偶然により、C と C は普通の C と 等価だったため、C で無名サブルーチンが作れていました。 これらは "lexical_subs" 機能の外側では出来なくなりました。 "lexical_subs" 機能の元ではこれらは L に 記述されている新しい意味を持ちます。 =head2 Defined values stored in environment are forced to byte strings (環境変数に保管された定義値はバイト文字列に強制されました) =begin original A value stored in an environment variable has always been stringified. In this release, it is converted to be only a byte string. First, it is forced to be only a string. Then if the string is utf8 and the equivalent of C works, that result is used; otherwise, the equivalent of C is used, and a warning is issued about wide characters (L). =end original 環境変数に保管される値は常に文字列化されていました。 このリリースから、バイト文字列にだけ変換されます。 まず、文字列だけに強制されます。 それから、文字列が utf8 で C の等価物が動作するなら、 結果が使われます; さもなければ、C の等価物が使われ、 ワイド文字に関する警告が出力されます (L)。 =head2 C dies for unreadable files (読み込めないファイルに対する C は die します) =begin original When C encounters an unreadable file, it now dies. It used to ignore the file and continue searching the directories in C<@INC> [perl #113422]. =end original C が読み込めないファイルに遭遇すると、die するようになりました。 以前はそのファイルを無視して、C<@INC> のディレクトリの検索を続けていました [perl #113422]。 =head2 C and SUPER (C と SUPER) =begin original The various C XS functions used to treat a package whose named ended with C<::SUPER> specially. A method lookup on the C package would be treated as a C method lookup on the C package. This is no longer the case. To do a C lookup, pass the C stash and the C flag. =end original 様々な C XS 関数は、名前が C<::SUPER> で終わるパッケージを 特別扱いしていました。 C パッケージでのメソッド検索は C パッケージでの C メソッドとして扱われていました。 これはもはや起こりません。 C を検索するには、C スタッシュと C フラグを 渡してください。 =head2 C's first argument is more consistently interpreted (C の最初の引数はより一貫性を持って解釈されるようになりました) =begin original After some changes earlier in v5.17, C's behavior has been simplified: if the PATTERN argument evaluates to a string containing one space, it is treated the way that a I string containing one space once was. =end original v5.17 の初期でのいくつかの変更の後、C の振る舞いは単純化されました: PATTERN 引数が一つのスペースを含む文字列として評価される場合、一つの スペースを含んでいる I<リテラルな> 文字列であったように扱われます。 =head1 Deprecations (廃止予定) =head2 Module removals (モジュールの削除) =begin original The following modules will be removed from the core distribution in a future release, and will at that time need to be installed from CPAN. Distributions on CPAN which require these modules will need to list them as prerequisites. =end original 以下のモジュールは将来のリリースでコア配布から削除され、代わりに CPAN から インストールされる必要があるようになります。 これらが必要な CPAN 配布は依存モジュールにこれらを加える必要があります。 =begin original The core versions of these modules will now issue C<"deprecated">-category warnings to alert you to this fact. To silence these deprecation warnings, install the modules in question from CPAN. =end original これらのモジュールのコア版を使うと、この事実を知らせるために C<"deprecated"> カテゴリの警告が発生するようになりました。 これらの廃止予定警告を黙らせるには、問題になっているモジュールを CPAN から インストールしてください。 =begin original Note that these are (with rare exceptions) fine modules that you are encouraged to continue to use. Their disinclusion from core primarily hinges on their necessity to bootstrapping a fully functional, CPAN-capable Perl installation, not usually on concerns over their design. =end original (稀な例外はありますが) 使い続けることを奨励されている素晴らしいモジュールが あることに注意してください。 これらがコアに含まれなくなったのは、普通はその設計を考慮したためではなく、 主に完全に機能する、CPAN が使える Perl のインストールのブートストラッピングへの 必要性によって決まります。 =over =item L =begin original The use of this pragma is now strongly discouraged. It conflates the encoding of source text with the encoding of I/O data, reinterprets escape sequences in source text (a questionable choice), and introduces the UTF-8 bug to all runtime handling of character strings. It is broken as designed and beyond repair. =end original このプラグマの使用は強く非推奨です。 これはソーステキストのエンコーディングと I/O データのエンコーディングを 融合し、ソーステキストのエスケープシーケンスを再解釈し(疑問のある選択です)、 全ての実行時の文字列の扱いに UTF-8 バグを導入します。 これは意図的に壊れていて、直すにはほど遠いです。 =begin original For using non-ASCII literal characters in source text, please refer to L. For dealing with textual I/O data, please refer to L and L. =end original ソーステキストに非 ASCII リテラル文字を使うには、どうか L を 参照してください。 テキストの I/O データの扱いについては、どうか L と L を 参照してください。 =item L =item L =item L =item L and all included C modules (L および含まれている全ての C モジュール) =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =back =head2 Deprecated Utilities (廃止予定のユーティリティ) =begin original The following utilities will be removed from the core distribution in a future release as their associated modules have been deprecated. They will remain available with the applicable CPAN distribution. =end original 以下のユーティリティは、関連するモジュールが廃止予定なので、将来のリリースで コア配布から削除されます。 適切な CPAN 配布からは利用可能なままです。 =over =item L =item C =item L =begin original These items are part of the C distribution. =end original これは C 配布の一部です。 =item L =begin original This item is part of the C distribution. =end original これは C 配布の一部です。 =back =head2 PL_sv_objcount =begin original This interpreter-global variable used to track the total number of Perl objects in the interpreter. It is no longer maintained and will be removed altogether in Perl v5.20. =end original このインタプリタグローバルな変数はインタプリタ内の Perl オブジェクトの総数を 記録するために使われていました。 これはもはや保守されず、Perl v5.20 で削除される予定です。 =head2 Five additional characters should be escaped in patterns with C (C では追加で五つの文字にエスケープが必要になりました) =begin original When a regular expression pattern is compiled with C, Perl treats 6 characters as white space to ignore, such as SPACE and TAB. However, Unicode recommends 11 characters be treated thusly. We will conform with this in a future Perl version. In the meantime, use of any of the missing characters will raise a deprecation warning, unless turned off. The five characters are: =end original 正規表現パターンが C 付きでコンパイルされるとき、Perl は SPACE や TAB などの 6 文字を無視する空白として扱います。 しかし、Unicode は 11 文字をそう扱うように勧めています。 私たちはこれを将来の Perl バージョンで従う予定です。 当面の間、抜けている文字の使用は、オフにされていない限り廃止予定警告を 引き起こします。 五つの文字とは以下の通りです: U+0085 NEXT LINE U+200E LEFT-TO-RIGHT MARK U+200F RIGHT-TO-LEFT MARK U+2028 LINE SEPARATOR U+2029 PARAGRAPH SEPARATOR =head2 User-defined charnames with surprising whitespace (予期しない空白付きのユーザー定義文字名) =begin original A user-defined character name with trailing or multiple spaces in a row is likely a typo. This now generates a warning when defined, on the assumption that uses of it will be unlikely to include the excess whitespace. =end original 末尾や連続した空白を含むユーザー定義文字名はおそらくタイプミスです。 多すぎる空白を含むことはなさそうという仮定の下、このようなものを定義すると 警告が出るようになりました。 =head2 Various XS-callable functions are now deprecated (さまざまな XS から呼び出せる関数が廃止予定になりました) =begin original All the functions used to classify characters will be removed from a future version of Perl, and should not be used. With participating C compilers (e.g., gcc), compiling any file that uses any of these will generate a warning. These were not intended for public use; there are equivalent, faster, macros for most of them. =end original 文字をクラス分けする全ての関数は将来のバージョンの Perl から削除されるので、 使うべきではありません。 これらのいずれかを使っているファイルをコンパイルすると、 (例えば gcc のような) 関連する C コンパイラは警告を生成します。 これらは公的な使用を想定していません; これらのほとんどに対しては、等価でより 高速なマクロがあります。 =begin original See L. The complete list is: =end original L を参照してください。 完全な一覧は: C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C. =begin original In addition these three functions that have never worked properly are deprecated: C, C, and C. =end original さらに、以下の三つの決して正しく動作しない関数が廃止予定になりました: C, C, and C. =head2 Certain rare uses of backslashes within regexes are now deprecated (正規表現中の逆スラッシュのある種の稀な使用法は廃止予定になりました) =begin original There are three pairs of characters that Perl recognizes as metacharacters in regular expression patterns: C<{}>, C<[]>, and C<()>. These can be used as well to delimit patterns, as in: =end original Perl が正規表現パターンのメタ文字として認識する 3 組の文字があります: C<{}>, C<[]>, C<()> です。 これらは以下のように区切り文字としても使えます: m{foo} s(foo)(bar) =begin original Since they are metacharacters, they have special meaning to regular expression patterns, and it turns out that you can't turn off that special meaning by the normal means of preceding them with a backslash, if you use them, paired, within a pattern delimited by them. For example, in =end original これらはメタ文字なので、正規表現では特別な意味があります; そして これらの文字を区切り文字として使ったパターンの中で使うとき、逆スラッシュを 前置して通常の意味にすることで特別な意味をなくすということができないことが 分かりました。 例えば、以下のものは m{foo\{1,3\}} =begin original the backslashes do not change the behavior, and this matches S> followed by one to three more occurrences of C<"o">. =end original 逆スラッシュは振る舞いを変更せず、これは S> に引き続いて 1 から 3 文字の C<"o"> にマッチングします。 =begin original Usages like this, where they are interpreted as metacharacters, are exceedingly rare; we think there are none, for example, in all of CPAN. Hence, this deprecation should affect very little code. It does give notice, however, that any such code needs to change, which will in turn allow us to change the behavior in future Perl versions so that the backslashes do have an effect, and without fear that we are silently breaking any existing code. =end original メタ文字として解釈される場所でのこのような使用法は極めて稀です; 例えば、 CPAN 全ての中で全く使われていません。 従って、この廃止予定はコードにほとんど影響を与えないはずです。 しかし、逆スラッシュが意味があるように将来の Perl バージョンの振る舞いを 変更したときに、このようなコードは変更する必要があり、黙って既存のコードを 壊す恐れがないように、ここで注意しておきます。 =head2 Splitting the tokens C<(?> and C<(*> in regular expressions (正規表現でトークン C<(?> または C<(*> を分割する) =begin original A deprecation warning is now raised if the C<(> and C are separated by white space or comments in C<(?...)> regular expression constructs. Similarly, if the C<(> and C<*> are separated in C<(*VERB...)> constructs. =end original C<(?...)> 正規表現構文で C<(> と C が空白で分割されていると廃止予定警告が 発生するようになりました。 C<(*VERB...)> 構文で C<(> と C<*> が分割されている場合も同様です。 =head2 Pre-PerlIO IO implementations (PerlIO 以前の IO 実装) =begin original In theory, you can currently build perl without PerlIO. Instead, you'd use a wrapper around stdio or sfio. In practice, this isn't very useful. It's not well tested, and without any support for IO layers or (thus) Unicode, it's not much of a perl. Building without PerlIO will most likely be removed in the next version of perl. =end original 理論的には、今のところ PerlIO なしで perl をビルドすることは可能です。 代わりに、stdio か sfio のラッパーを使います。 実際には、これはかなり不便です。 あまりテストされておらず、IO 層や(従って)Unicode に対応しておらず、 perl としていいものではありません。 PerlIO なしのビルドはおそらく次のバージョンの perl で削除されます。 =begin original PerlIO supports a C layer if stdio use is desired. Similarly a sfio layer could be produced in the future, if needed. =end original PerlIO は、stdio を使いたいなら C 層に対応しています。 同様に sfio 層も、もし必要なら将来作成されるかもしれません。 =head1 Future Deprecations (将来の廃止予定) =over =item * =begin original Platforms without support infrastructure =end original 対応基盤のないプラットフォーム =begin original Both Windows CE and z/OS have been historically under-maintained, and are currently neither successfully building nor regularly being smoke tested. Efforts are underway to change this situation, but it should not be taken for granted that the platforms are safe and supported. If they do not become buildable and regularly smoked, support for them may be actively removed in future releases. If you have an interest in these platforms and you can lend your time, expertise, or hardware to help support these platforms, please let the perl development effort know by emailing C. =end original Windows CE と z/OS は歴史的に管理下にありましたが、現在の所どちらも ビルドに失敗したり定期的にスモークテストされていなかったりします。 この状況を変えるための努力は行われていますが、これらのプラットフォームが 安全で対応していると認められるべきではありません。 ビルド可能になって定期的にスモークテストが行われない場合、これらへの対応は 将来のリリースで積極的に削除されるかもしれません。 これらのプラットフォームに興味があって、これらのプラットフォームを 助けるための時間、知識、ハードウェアがあるなら、C に メールすることで perl 開発活動に知らせてください。 =begin original Some platforms that appear otherwise entirely dead are also on the short list for removal between now and v5.20.0: =end original その他の完全に死んでいるように見える一部のプラットフォームも現在から v5.20.0 の間に削除される短い一覧に載っています: =over =item DG/UX =item NeXT =back =begin original We also think it likely that current versions of Perl will no longer build AmigaOS, DJGPP, NetWare (natively), OS/2 and Plan 9. If you are using Perl on such a platform and have an interest in ensuring Perl's future on them, please contact us. =end original 私たちはまた、おそらく現在のバージョンの Perl はもはや AmigaOS, DJGPP, (ネイティブな) NetWare, OS/2, Plan 9 ではビルドできないと考えています。 もしあなたがこのようなプラットフォームで Perl を使っていて、これらでの Perl の未来を確実にすることに関心があるなら、どうか私たちに連絡してください。 =begin original We believe that Perl has long been unable to build on mixed endian architectures (such as PDP-11s), and intend to remove any remaining support code. Similarly, code supporting the long umaintained GNU dld will be removed soon if no-one makes themselves known as an active user. =end original 私たちは、Perl は長い間 (PDP-11 のような) 混合エンディアンアーキテクチャでは ビルドできないと信じていて、残っている対応コードを削除するつもりです。 同様に、長い間保守されていない GNU dld に対応するコードも、誰も アクティブなユーザーとして知られることがなければ、もうすぐ 取り除かれるでしょう。 =item * =begin original Swapping of $< and $> =end original $< と $> の交換 =begin original Perl has supported the idiom of swapping $< and $> (and likewise $( and $)) to temporarily drop permissions since 5.0, like this: =end original Perl は 5.0 から、以下のように、一時的にパーミッションを落とすために $< と $> を(および同様に $( と $) を) 交換するという慣用句に対応しています: ($<, $>) = ($>, $<); =begin original However, this idiom modifies the real user/group id, which can have undesirable side-effects, is no longer useful on any platform perl supports and complicates the implementation of these variables and list assignment in general. =end original しかし、実ユーザー/グループ ID を変更するという、望ましくない副作用が あるかもしれないこの慣用句は、もはや perl が対応しているどの プラットフォームでも有用ではなく、これらの変数と一般的なリスト代入の 実装を複雑にしています。 =begin original As an alternative, assignment only to C<< $> >> is recommended: =end original 代替策として、C<< $> >> だけに代入することを推奨します: local $> = $<; =begin original See also: L. =end original 関連項目: L。 =item * =begin original C, long broken and of unclear present purpose, will be removed. =end original 長い間壊れていて存在理由がはっきりしない C は削除されます。 =item * =begin original Revamping C<< "\Q" >> semantics in double-quotish strings when combined with other escapes. =end original ダブルクォート風文字列内で他のエスケープと組み合わされたときの C<< "\Q" >> の意味論の刷新。 =begin original There are several bugs and inconsistencies involving combinations of C<\Q> and escapes like C<\x>, C<\L>, etc., within a C<\Q...\E> pair. These need to be fixed, and doing so will necessarily change current behavior. The changes have not yet been settled. =end original C<\Q...\E> の組の中の C<\Q> と C<\x>, C<\L> などのようなエスケープとの 組み合わせに伴ういくつかのバグと非一貫性があります。 これらは修正される必要があり、そうするには現在の振る舞いを変える必要が あります。 変更はまだ確定していません。 =item * =begin original Use of C<$x>, where C stands for any actual (non-printing) C0 control character will be disallowed in a future Perl version. Use C<${x}> instead (where again C stands for a control character), or better, C<$^A> , where C<^> is a caret (CIRCUMFLEX ACCENT), and C stands for any of the characters listed at the end of L. =end original C<$x> (ここで C は任意の実際の (表示されない) C0 制御文字) の 使用は将来の Perl のバージョンでは認められなくなります。 代わりに C<${x}> を使うか (再び C は制御文字)、よりよいのは C<$^A> (C<^> はキャレット (CIRCUMFLEX ACCENT)、C は L の末尾に一覧がある任意の文字) を 使ってください。 =back =head1 Performance Enhancements (性能改善) =over 4 =item * =begin original Lists of lexical variable declarations (C) are now optimised down to a single op and are hence faster than before. =end original レキシカル変数宣言のリスト (C) は単一の op に最適化されたので、 以前より高速になりました。 =item * =begin original A new C preprocessor define C was added that, if set, disables Perl's taint support altogether. Using the -T or -t command line flags will cause a fatal error. Beware that both core tests as well as many a CPAN distribution's tests will fail with this change. On the upside, it provides a small performance benefit due to reduced branching. =end original 新しい C プリプロセッサ定義 C が追加されました; これが 設定されると、Perl の汚染対応が完全に無効になります。 -T や -t のコマンドラインフラグを使うと致命的エラーとなります。 両方のコアのテストと同様に、多くの CPAN 配布のテストもこの変更で 失敗することに注意してください。 一方、分岐が減ることにより少し性能が改善します。 =begin original B =end original B<自分自身が何をしているかを正確に理解していない限りこれを 有効にしないでください。> =item * =begin original C with constant arguments is now constant folded in most cases [perl #113470]. =end original 定数引数の C はほとんどの場合定数畳み込みされるようになりました [perl #113470]。 =item * =begin original Speed up in regular expression matching against Unicode properties. The largest gain is for C<\X>, the Unicode "extended grapheme cluster." The gain for it is about 35% - 40%. Bracketed character classes, e.g., C<[0-9\x{100}]> containing code points above 255 are also now faster. =end original Unicode 特性に対してマッチングする正規表現が高速化されました。 最大の改善は Unicode「拡張書記素クラスタ」である C<\X> です。 これに関する改善はおよそ 35% - 40% です。 256 以上の符号位置を含む大かっこ文字クラス、例えば C<0-9\x{100}]> も 高速化されました。 =item * =begin original On platforms supporting it, several former macros are now implemented as static inline functions. This should speed things up slightly on non-GCC platforms. =end original 対応しているプラットフォームでは、いくつかの以前のマクロは静的インライン 関数として実装されるようになりました。 これは非 GCC プラットフォームで少し高速化するはずです。 =item * =begin original The optimisation of hashes in boolean context has been extended to affect C, C<%hash ? ... : ...>, and C. =end original 真偽値コンテキストでのハッシュの最適化は C, C<%hash ? ... : ...>, C に影響を与えるように 拡張されました。 =item * =begin original Filetest operators manage the stack in a fractionally more efficient manner. =end original ファイルテスト演算子はスタックを少しだけより効率的な方法で扱うように なりました。 =item * =begin original Globs used in a numeric context are now numified directly in most cases, rather than being numified via stringification. =end original 数値コンテキストで使われるグロブは、ほとんどの場合、文字列化を経由して 数値化されるのでなく、直接数値化されるようになりました。 =item * =begin original The C repetition operator is now folded to a single constant at compile time if called in scalar context with constant operands and no parentheses around the left operand. =end original C 繰り返し演算子は、スカラコンテキストで定数オペランドで呼び出され、 左オペランドにかっこがなければ、コンパイル時に単一の定数に 畳み込まれるようになりました。 =back =head1 Modules and Pragmata (モジュールとプラグマ) =head2 New Modules and Pragmata (新しいモジュールとプラグマ) =over 4 =item * =begin original L version 0.16 has been added as a dual-lifed module. It provides structured data retrieval of C output including information only known to the C binary and not available via L. =end original L バージョン 0.16 は二重管理モジュールとして追加されました。 これは、C バイナリのみが知っていて L 経由では利用できない 情報を含む、C 出力の構造化されたデータを提供します。 =back =head2 Updated Modules and Pragmata (更新されたモジュールとプラグマ) =begin original For a complete list of updates, run: =end original 更新の完全な一覧は、以下を実行してください: $ corelist --diff 5.16.0 5.18.0 =begin original You can substitute your favorite version in place of C<5.16.0>, too. =end original C<5.16.0> の部分は好みのバージョンに置き換えることもできます。 =over =item * =begin original L has been upgraded to 0.68. =end original L はバージョン 0.68 に更新されました。 =begin original Work around an edge case on Linux with Busybox's unzip. =end original Busybox の unzip を使う Linux でのエッジケースを回避します。 =item * =begin original L has been upgraded to 1.90. =end original L はバージョン 1.90 に更新されました。 =begin original ptar now supports the -T option as well as dashless options [rt.cpan.org #75473], [rt.cpan.org #75475]. =end original ptar はダッシュなしのオプションと共に -T オプションに 対応するようになりました [rt.cpan.org #75473], [rt.cpan.org #75475]。 =begin original Auto-encode filenames marked as UTF-8 [rt.cpan.org #75474]. =end original UTF-8 とマークされたファイル名を自動的にエンコードするようになりました [rt.cpan.org #75474]。 =begin original Don't use C on L handles [rt.cpan.org #64339]. =end original L ハンドルに対して C を使わなくなりました [rt.cpan.org #64339]。 =begin original Don't try to C on symlinks. =end original シンボリックリンクに対して C しようとしなくなりました。 =item * =begin original L has been upgraded to 2.13. =end original L はバージョン 2.13 に更新されました。 =begin original C now plays nicely with the 'open' pragma. =end original C は 'open' プラグマをうまく扱うようになりました。 =item * =begin original L has been upgraded to 1.42. =end original L はバージョン 1.42 に更新されました。 =begin original The C method of COPs has been added. This provides access to an internal field added in perl 5.16 under threaded builds [perl #113034]. =end original COP の C メソッドが追加されました。 これは perl 5.16 のスレッドビルドで追加された内部フィールドへのアクセスを 提供します [perl #113034]。 =begin original C now supports UTF-8 package names and embedded NULs. =end original C は UTF-8 パッケージ名と埋め込みの NUL に 対応するようになりました。 =begin original All C and C and more SV-related flag values are now provided as constants in the C namespace and available for export. The default export list has not changed. =end original 全ての C と C と、さらに SV 関係のフラグの値は、 C 名前空間の定数として提供され、エクスポート可能になりました。 デフォルトのエクスポートリストは変更されません。 =begin original This makes the module work with the new pad API. =end original これによりモジュールが新しい pad API で動作するようになります。 =item * =begin original L has been upgraded to 0.95. =end original L はバージョン 0.95 に更新されました。 =begin original The C<-nobanner> option has been fixed, and Cs can now be dumped. When passed a sub name to dump, it will check also to see whether it is the name of a format. If a sub and a format share the same name, it will dump both. =end original C<-nobanner> オプションが修正され、C がダンプできるようになりました。 ダンプするサブルーチン名を渡したとき、それがフォーマットの名前かどうかも チェックします。 サブルーチンとフォーマットが同じ名前を共有している場合、両方とも ダンプされます。 =begin original This adds support for the new C and C flags. =end original これは新しい C および C フラグへの 対応を追加します。 =item * =begin original L has been upgraded to 1.18. =end original L はバージョン 1.18 に更新されました。 =begin original This adds support (experimentally) for C, which was added in Perl 5.17.4. =end original これは、Perl 5.17.4 で追加された C への対応を(実験的に) 追加します。 =item * =begin original L has been upgraded to 1.20. =end original L はバージョン 1.20 に更新されました。 =begin original Avoid warning when run under C. =end original C で実行されたときの警告を避けるようになりました。 =begin original It now deparses loop controls with the correct precedence, and multiple statements in a C line are also now deparsed correctly. =end original ループ制御を正しく逆パースするようになり、C 行に複数の文が あっても正しく逆パースできるようなりました。 =begin original This release suppresses trailing semicolons in formats. =end original このリリースはフォーマットの末尾のセミコロンを抑制します。 =begin original This release adds stub deparsing for lexical subroutines. =end original このリリースはレキシカルサブルーチンのためのスタブ逆パースが追加します。 =begin original It no longer dies when deparsing C without arguments. It now correctly omits the comma for C and C. =end original 引数なしの C を逆パースしてももはや die しなくなりました。 C と C のカンマを正しく 省略できるようになりました。 =item * =begin original L, L and L have been upgraded to 0.33. =end original L, L, L はバージョン 0.33 に更新されました。 =begin original The overrides for C and C have been rewritten, eliminating several problems, and making one incompatible change: =end original C と C のオーバーライドが書き直され、いくつかの問題が取り除かれ、 一つの互換性のない変更が行われました: =over =item * =begin original Formerly, whichever of C or C was compiled later would take precedence over the other, causing C and C not to respect the other pragma when in scope. =end original 以前は、C または C が後でコンパイルされると もう片方よりも優先順位が上になるので、スコープ内にあるときに C と C がもう一つのプラグマを考慮しなくなっていました。 =item * =begin original Using any of these three pragmata would cause C and C anywhere else in the program to evalute their arguments in list context and prevent them from inferring $_ when called without arguments. =end original これら三つのプラグマのいずれかを使うと、C と C はプログラム中の どこにあっても引数をリストコンテキストで評価し、引数なしで予備されたときに $_ を推論するのを妨げていました。 =item * =begin original Using any of these three pragmata would make C return 1234 (for any number not beginning with 0) anywhere in the program. Now "1234" is translated from octal to decimal, whether within the pragma's scope or not. =end original これらの三つのプラグマのいずれかを使うと、プログラム中のどこにあっても C (0 以外で始まる任意の数字について) が 1234 を返していました。 プラグマのスコープ内かどうかに関わらず、"1234" は 8 進数から 10 進数に 変換されるようになりました。 =item * =begin original The global overrides that facilitate lexical use of C and C now respect any existing overrides that were in place before the new overrides were installed, falling back to them outside of the scope of C. =end original C と C の使用を便利にするためのグローバルなオーバーライドは、 その場で以前新しく行われていた既存のオーバーライドを考慮して、 C のスコープの外側ではそれらに フォールバックするようになりました。 =item * =begin original C, C and similar invocations for bigint and bigrat now export a C or C function, instead of providing a global override. =end original bigint や bigrat のための C, C あるいは 同様の起動によって、グローバルなオーバーライドを提供するのではなく、 C や C 関数をエクスポートするようになりました。 =back =item * =begin original L has been upgraded to 1.29. =end original L はバージョン 1.29 に更新されました。 =begin original Carp is no longer confused when C returns undef for a package that has been deleted. =end original Carp はもはや、C が既に削除されたパッケージで undef を返したときに 混乱しなくなりました。 =begin original The C and C functions are now documented. =end original C と C 関数は文書化されました。 =item * =begin original L has been upgraded to 3.63. =end original L はバージョン 3.63 に更新されました。 =begin original Unrecognized HTML escape sequences are now handled better, problematic trailing newlines are no longer inserted after EformE tags by C or C, and bogus "Insecure Dependency" warnings appearing with some versions of perl are now worked around. =end original 認識できない HTML エスケープシーケンスはよりよく扱われるようになり、 問題のある末尾の改行は、もはや C や C によって EformE タグの後に挿入されなくなり、また一部のバージョンの perl で 現れていた偽の "Insecure Dependency" 警告は回避されるようになりました。 =item * =begin original L has been upgraded to 0.64. =end original L はバージョン 0.64 に更新されました。 =begin original The constructor now respects overridden accessor methods [perl #29230]. =end original コンストラクタはオーバーライドされるアクセサメソッドに従うようになりました [perl #29230]。 =item * =begin original L has been upgraded to 2.060. =end original L はバージョン 2.060 に更新されました。 =begin original The misuse of Perl's "magic" API has been fixed. =end original Perl の "magic" API の誤用は修正されました。 =item * =begin original L has been upgraded to 2.060. =end original L はバージョン 2.060 に更新されました。 =begin original Upgrade bundled zlib to version 1.2.7. =end original 同梱されている zlib はバージョン 1.2.7 に更新されました。 =begin original Fix build failures on Irix, Solaris, and Win32, and also when building as C++ [rt.cpan.org #69985], [rt.cpan.org #77030], [rt.cpan.org #75222]. =end original Irix, Solaris, Win32 でのビルド失敗、および C++ としてビルドしたときの 失敗が修正されました [rt.cpan.org #69985], [rt.cpan.org #77030], [rt.cpan.org #75222]。 =begin original The misuse of Perl's "magic" API has been fixed. =end original Perl の "magic" API の誤用は修正されました。 =begin original C, C, C and C have been speeded up by making parameter validation more efficient. =end original C, C, C, C は、引数の バリデーションをより効率的に行うことで高速化されました。 =item * =begin original L has been upgraded to 2.122. =end original L はバージョン 2.122 に更新されました。 =begin original Treat undef requirements to C as 0 (with a warning). =end original C に対する undef の扱いが (警告付きの) 0 になりました。 =begin original Added C method. =end original C メソッドが追加されました。 =item * =begin original L has been upgraded to 0.9135. =end original L はバージョン 0.9135 に更新されました。 =begin original Allow adding F to PATH. =end original PATH に F が追加されました。 =begin original Save the history between invocations of the shell. =end original シェルの起動の間の履歴が保存されるようになりました。 =begin original Handle multiple C and C arguments better. =end original 複数の C および C 引数をより良く 扱うようになりました。 =begin original This resolves issues with the SQLite source engine. =end original これは SQLite ソースエンジンの問題を解決します。 =item * =begin original L has been upgraded to 2.145. =end original L はバージョン 2.145 に更新されました。 =begin original It has been optimized to only build a seen-scalar hash as necessary, thereby speeding up serialization drastically. =end original スカラに見えるハッシュを必要な場合にのみ構築するように最適化され、 それによってシリアル化が大幅に高速化しました。 =begin original Additional tests were added in order to improve statement, branch, condition and subroutine coverage. On the basis of the coverage analysis, some of the internals of Dumper.pm were refactored. Almost all methods are now documented. =end original 文、分岐、条件、サブルーチンカバレッジの向上のために追加のテストが 追加されました。 カバレッジ解析に基づいて、Dumper.pm の内部の一部が リファクタリングされました。 ほとんど全てのメソッドは文書化されました。 =item * =begin original L has been upgraded to 1.827. =end original L はバージョン 1.827 に更新されました。 =begin original The main Perl module no longer uses the C<"@_"> construct. =end original メイン Perl モジュールはもはや C<"@_"> 構文を使わなくなりました。 =item * =begin original L has been upgraded to 1.11. =end original L はバージョン 1.11 に更新されました。 =begin original This fixes compilation with C++ compilers and makes the module work with the new pad API. =end original これは C++ コンパイラでのコンパイルの問題を修正し、モジュールが新しい pad API で動作するようにします。 =item * =begin original L has been upgraded to 2.52. =end original L はバージョン 2.52 に更新されました。 =begin original Fix C OO fallback [rt.cpan.org #66634]. =end original C OO フォールバッグが修正されました [rt.cpan.org #66634]。 =item * =begin original L has been upgraded to 5.84. =end original L はバージョン 5.84 に更新されました。 =begin original This fixes a double-free bug, which might have caused vulnerabilities in some cases. =end original これは、場合によっては脆弱性を引き起こしていた二重解放バグを修正します。 =item * =begin original L has been upgraded to 1.18. =end original L はバージョン 1.18 に更新されました。 =begin original This is due to a minor code change in the XS for the VMS implementation. =end original これは VMS 実装のための XS の小さなコード変更によるものです。 =begin original This fixes warnings about using C sections without an C section. =end original これは C 節なしで C 節を使うことに関する警告を修正します。 =item * =begin original L has been upgraded to 2.49. =end original L はバージョン 2.49 に更新されました。 =begin original The Mac alias x-mac-ce has been added, and various bugs have been fixed in Encode::Unicode, Encode::UTF7 and Encode::GSM0338. =end original Mac 別名 x-mac-ce が追加され、Encode::Unicode, Encode::UTF7, Encode::GSM0338 の様々なバグが修正されました。 =item * =begin original L has been upgraded to 1.04. =end original L はバージョン 1.04 に更新されました。 =begin original Its SPLICE implementation no longer misbehaves in list context. =end original SPLICE 実装はもはやリストコンテキストで間違ってる振る舞いをしなくなりました。 =item * =begin original L has been upgraded to 0.280210. =end original L はバージョン 0.280210 に更新されました。 =begin original Manifest files are now correctly embedded for those versions of VC++ which make use of them. [perl #111782, #111798]. =end original Manifest ファイルは、使おうとする VC++ のバージョンを正しく 組み込むようになりました。 [perl #111782, #111798]。 =begin original A list of symbols to export can now be passed to C when on Windows, as on other OSes [perl #115100]. =end original Windows でも、その他の OS と同様、エクスポートするシンボルの一覧を C に渡せるようになりました [perl #115100]。 =item * =begin original L has been upgraded to 3.18. =end original L はバージョン 3.18 に更新されました。 =begin original The generated C code now avoids unnecessarily incrementing C on Perl versions where it's done automatically (or on current Perl where the variable no longer exists). =end original 生成された C コードは、自動的に C を インクリメントする Perl バージョン (あるいはこの変数がもはや存在しない 現在の Perl) で不必要にインクリメントしなくなりました。 =begin original This avoids a bogus warning for initialised XSUB non-parameters [perl #112776]. =end original これは初期化された XSUB 非パラメータに関する偽の警告を回避します [perl #112776]。 =item * =begin original L has been upgraded to 2.26. =end original L はバージョン 2.26 に更新されました。 =begin original C no longer zeros files when copying into the same directory, and also now fails (as it has long been documented to do) when attempting to copy a file over itself. =end original C はもはや同じディレクトリにコピーするときにファイルをゼロに することはなく、自分自身にコピーしようとした場合に(長い間そうすると 文書化されていたように)失敗するようになりました。 =item * =begin original L has been upgraded to 1.10. =end original L はバージョン 1.10 に更新されました。 =begin original The internal cache of file names that it keeps for each caller is now freed when that caller is freed. This means C<< use File::DosGlob 'glob'; eval 'scalar <*>' >> no longer leaks memory. =end original それぞれの呼び出し元に関して保持していたファイル名の内部キャッシュは 呼び出し元が解放されたときに解放されるようになりました。 これは、C<< use File::DosGlob 'glob'; eval 'scalar <*>' >> がもはや メモリリークしないということです。 =item * =begin original L has been upgraded to 0.38. =end original L はバージョン 0.38 に更新されました。 =begin original Added the 'file_default' option for URLs that do not have a file component. =end original ファイル要素を持たない URL のための 'file_default' オプションが 追加されました。 =begin original Use C when available, and provide C to override the autodetection. =end original 利用可能なら C を使い、自動検出を上書きするための C を提供するようになりました。 =begin original Always re-fetch F if C is set. =end original C が設定されると常に F を 再フェッチするようになりました。 =item * =begin original L has been upgraded to 1.23. =end original L はバージョン 1.23 に更新されました。 =begin original This fixes inconsistent unixy path handling on VMS. =end original これは VMS での unix 風パスの扱いの非一貫性を修正します。 =begin original Individual files may now appear in list of directories to be searched [perl #59750]. =end original 個々のファイルが検索したディレクトリの一覧に現れるようになりました [perl #59750]。 =item * =begin original L has been upgraded to 1.20. =end original L はバージョン 1.20 に更新されました。 =begin original File::Glob has had exactly the same fix as File::DosGlob. Since it is what Perl's own C operator itself uses (except on VMS), this means C<< eval 'scalar <*>' >> no longer leaks. =end original File::Glob は File::DosGlob と正確に同じ修正が行われました。 (VMS 以外では) Perl 自身の C 演算子自身が使っているので、これは C<< eval 'scalar <*>' >> がもはやリークしないということです。 =begin original A space-separated list of patterns return long lists of results no longer results in memory corruption or crashes. This bug was introduced in Perl 5.16.0. [perl #114984] =end original 長い一覧を返すパターンのスペース区切りの一覧はもはやメモリ破壊やクラッシュを 彦越さなくなりました。 このバグは Perl 5.16.0 で導入されました。 [perl #114984] =item * =begin original L has been upgraded to 3.40. =end original L はバージョン 3.40 に更新されました。 =begin original C could produce incorrect results when given two relative paths or the root directory twice [perl #111510]. =end original C は、二つの相対パスが与えられたりルートディレクトリが二回 与えられたときに間違った結果を生成することがありました [perl #111510]。 =item * =begin original L has been upgraded to 1.07. =end original L はバージョン 1.07 に更新されました。 =begin original C ignores the L pragma, and warns when used in combination therewith. But it was not warning for C<-r>. This has been fixed [perl #111640]. =end original C は L プラグマを無視し、組み合わせて使われると 警告します。 しかしこれは C<-r> は警告していませんでした。 これは修正されました [perl #111640]。 =begin original C<-p> now works, and does not return false for pipes [perl #111638]. =end original C<-p> が動作するようになり、パイプに対して偽を返さなくなりました [perl #111638]。 =begin original Previously C's overloaded C<-x> and C<-X> operators did not give the correct results for directories or executable files when running as root. They had been treating executable permissions for root just like for any other user, performing group membership tests I for files not owned by root. They now follow the correct Unix behaviour - for a directory they are always true, and for a file if any of the three execute permission bits are set then they report that root can execute the file. Perl's builtin C<-x> and C<-X> operators have always been correct. =end original 以前は C によってオーバーロードされた C<-x> と C<-X> 演算子は、 root として実行されているときにディレクトリと実行ファイルに関して 正しい結果になっていませんでした。 root に対する実行許可はその他のユーザーと同様、root によって所有されていない ファイルについてはグループ所有者テスト I<など> を行っていました。 これらは正しい Unix の振る舞いに従うようになりました - ディレクトリに対しては 常に真、ファイルに関しては三つの実行許可ビットのいずれかが設定されていれば root がファイルを実行できると報告します。 Perl の組み込みの C<-x> と C<-X> 演算子は常に正しいです。 =item * =begin original L has been upgraded to 0.23 =end original L はバージョン 0.2 に更新されました。 =begin original Fixes various bugs involving directory removal. Defers unlinking tempfiles if the initial unlink fails, which fixes problems on NFS. =end original ディレクトリ削除に関する様々なバグが修正されました。 最初の unlink が失敗した場合、一時ファイルの削除は延期されるようになり、 これにより NFS での問題が修正されました。 =item * =begin original L has been upgraded to 1.15. =end original L はバージョン 1.15 に更新されました。 =begin original The undocumented optional fifth parameter to C has been removed. This was intended to provide control of the callback used by C functions in case of fatal errors (such as filesystem problems), but did not work (and could never have worked). No code on CPAN even attempted to use it. The callback is now always the previous default, C. Problems on some platforms with how the C C function is called have also been resolved. =end original C に対する文書化されていなかったオプションの第 5 引数は 削除されました。 これは(ファイルシステムの問題のような)致命的エラーの場合に C 関数によって使われるコールバックの制御を提供することを 意図していましたが、動作しておらず (そして動作させることもできず)、 CPAN のコードでは使おうとすらされていませんでした。 コールバックは常に以前のデフォルトである C になりました。 C の C 関数の呼び出され方に関する一部のプラットフォームでの問題も 解決しました。 =item * =begin original L has been upgraded to 0.15. =end original L はバージョン 0.15 に更新されました。 =begin original C and C now returns true if the hash is unlocked, instead of always returning false [perl #112126]. =end original C と C は、常に偽を返すのではなく、 ハッシュがアンロックされた場合に真を返すようになりました [perl #112126]。 =begin original C, C, C and C are now exportable [perl #112126]. =end original C, C, C, C はエクスポート可能になりました [perl #112126]。 =begin original Two new functions, C and C, have been added. Oddly enough, these two functions were already exported, even though they did not exist [perl #112126]. =end original 二つの新しい関数 C と C が追加されました。 おかしなことに、これら二つの関数は存在していないのに既に エクスポートされていました [perl #112126]。 =item * =begin original L has been upgraded to 0.025. =end original L はバージョン 0.025 に更新されました。 =begin original Add SSL verification features [github #6], [github #9]. =end original SSL 検証機能が追加されました [github #6], [github #9]。 =begin original Include the final URL in the response hashref. =end original レスポンスハッシュリファレンスに最終的な URL が含まれるようになりました。 =begin original Add C option. =end original C オプションが追加されました。 =begin original This improves SSL support. =end original これは SSL 対応を改良します。 =item * =begin original L has been upgraded to 1.28. =end original L はバージョン 1.28 に更新されました。 =begin original C can now be called on read-only file handles [perl #64772]. =end original C は読み込み専用ファイルハンドルに対して呼び出せるようになりました [perl #64772]。 =begin original L tries harder to cache or otherwise fetch socket information. =end original L はソケット情報をよりしっかりとキャッシュやさもなければ フェッチしようとするようになりました。 =item * =begin original L has been upgraded to 0.80. =end original L はバージョン 0.80 に更新されました。 =begin original Use C instead of C in C [rt.cpan.org #76901]. =end original C で C ではなく Use C を使うようになりました [rt.cpan.org #76901]。 =item * =begin original L has been upgraded to 1.13. =end original L はバージョン 1.13 に更新されました。 =begin original The C function no longer uses C to close file descriptors since that breaks the ref-counting of file descriptors done by PerlIO in cases where the file descriptors are shared by PerlIO streams, leading to attempts to close the file descriptors a second time when any such PerlIO streams are closed later on. =end original C 関数はファイル記述子を閉じるのにもはや C を 使わなくなりました; なぜなら、ファイル記述子が PerlIO ストリームによって 共有されている場合、PerlIO によって行われるファイル記述子の参照カウントを 壊し、そのような PerlIO ストリームが後で閉じられたときに 2 回ファイル 記述子を閉じようとしていました。 =item * =begin original L has been upgraded to 3.25. =end original L はバージョン 3.25 に更新されました。 =begin original It includes some new codes. =end original いくつかの新しいコードを含んでいます。 =item * =begin original L has been upgraded to 1.03. =end original L はバージョン 1.03 に更新されました。 =begin original Fix the C cache option. =end original C キャッシュオプションが修正されました。 =item * =begin original L has been upgraded to 0.4003. =end original L はバージョン 0.4003 に更新されました。 =begin original Fixed bug where modules without C<$VERSION> might have a version of '0' listed in 'provides' metadata, which will be rejected by PAUSE. =end original C<$VERSION> のないモジュールが 'provides' メタデータの中でバージョン '0' を 出力して、PAUSE に拒否されるバグを修正しましたs。 =begin original Fixed bug in PodParser to allow numerals in module names. =end original モジュール名に数詞が使えるようにするために PodParser のバグを修正しました。 =begin original Fixed bug where giving arguments twice led to them becoming arrays, resulting in install paths like F. =end original 引数を 2 回渡すと配列になり、インストールパスが F のようになる問題が修正されました。 =begin original A minor bug fix allows markup to be used around the leading "Name" in a POD "abstract" line, and some documentation improvements have been made. =end original 小さなバグ修正により、POD "abstract" 行の先頭の "Name" の周りに マークアップが使えるようになり、一部の文書の改良が行われました。 =item * =begin original L has been upgraded to 2.90 =end original L はバージョン 2.9 に更新されました。 =begin original Version information is now stored as a delta, which greatly reduces the size of the F file. =end original バージョン情報は差分として保管されるようになり、F ファイルの サイズが大幅に削減されました。 =begin original This restores compatibility with older versions of perl and cleans up the corelist data for various modules. =end original これにより古いバージョンの perl との互換性が復活し、様々なモジュールの コアリストデータが整理されました。 =item * =begin original L has been upgraded to 0.54. =end original L はバージョン 0.54 に更新されました。 =begin original Fix use of C on perls installed to a path with spaces. =end original スペースを含むパスにインストールされた perl での C の使用が 修正されました。 =begin original Various enhancements include the new use of Module::Metadata. =end original 新しい Module::Metadata の使用を含む様々な拡張が行われました。 =item * =begin original L has been upgraded to 1.000011. =end original L はバージョン 1.000011 に更新されました。 =begin original The creation of a Module::Metadata object for a typical module file has been sped up by about 40%, and some spurious warnings about C<$VERSION>s have been suppressed. =end original 典型的なモジュールファイルに対する Module::Metadata オブジェクトの作成は 約 40% 高速化し、C<$VERSION> に関する偽の警告が抑制されました。 =item * =begin original L has been upgraded to 4.7. =end original L はバージョン 4.7 に更新されました。 =begin original Amongst other changes, triggers are now allowed on events, which gives a powerful way to modify behaviour. =end original その他の変更と共に、トリガはイベントに対して可能になり、振る舞いを 変更するための強力な手段となりました。 =item * =begin original L has been upgraded to 2.41. =end original L はバージョン 2.41 に更新されました。 =begin original This fixes some test failures on Windows. =end original これは Windows でのいくつかのテスト失敗を修正します。 =item * =begin original L has been upgraded to 1.25. =end original L はバージョン 1.25 に更新されました。 =begin original Reflect the removal of the boolkeys opcode and the addition of the clonecv, introcv and padcv opcodes. =end original boolkeys オペコードの削除と clonecv, introcv, padcv オペコードの追加を 反映しました。 =item * =begin original L has been upgraded to 1.22. =end original L はバージョン 1.22 に更新されました。 =begin original C now warns for invalid arguments, just like C. =end original C は C と同様、不正な引数に対して 警告するようになりました。 =item * =begin original L has been upgraded to 0.16. =end original L はバージョン 0.16 に更新されました。 =begin original This is the module implementing the ":encoding(...)" I/O layer. It no longer corrupts memory or crashes when the encoding back-end reallocates the buffer or gives it a typeglob or shared hash key scalar. =end original これは ":encoding(...)" I/O 層を実装するモジュールです。 これはエンコーディングバックエンドがバッファを再配置したり型グロブや 共有ハッシュキースカラに使っても、もはやメモリを壊したり クラッシュしたりしなくなりました。 =item * =begin original L has been upgraded to 0.16. =end original L はバージョン 0.16 に更新されました。 =begin original The buffer scalar supplied may now only contain code pounts 0xFF or lower. [perl #109828] =end original 提供されるバッファスカラは符号位置 0xFF 以下のみを含むようになりました。 [perl #109828] =item * =begin original L has been upgraded to 1.003. =end original L はバージョン 1.003 に更新されました。 =begin original This fixes a bug detecting the VOS operating system. =end original これは VOS オペレーティングシステムを検出するバグを修正します。 =item * =begin original L has been upgraded to 1.18. =end original L はバージョン 1.18 に更新されました。 =begin original The option C<--libpods> has been reinstated. It is deprecated, and its use does nothing other than issue a warning that it is no longer supported. =end original C<--libpods> オプションが回復しました。 これは廃止予定で、もはや対応しないという警告を出す以外のことは何もしません。 =begin original Since the HTML files generated by pod2html claim to have a UTF-8 charset, actually write the files out using UTF-8 [perl #111446]. =end original UTF-8 文字集合であると主張する、pod2html で生成された HTML ファイルは、 実際に UTF-8 を使ってファイルを書き出します [perl #111446]。 =item * =begin original L has been upgraded to 3.28. =end original L はバージョン 3.28 に更新されました。 =begin original Numerous improvements have been made, mostly to Pod::Simple::XHTML, which also has a compatibility change: the C option is now disabled by default. See F for the full details. =end original 多くの改良が行われました; ほとんどは Pod::Simple::XHTML に対するもので、 互換性の変更も行われました: C オプションはデフォルトで 無効になりました。 完全な詳細については F を参照してください。 =item * =begin original L has been upgraded to 0.23 =end original L はバージョン 0.2 に更新されました。 =begin original Single character [class]es like C or C are now optimized as if they did not have the brackets, i.e. C or C. =end original C や C のような、単一文字の 大かっこクラスは、 大かっこがないかのように最適化されるようになりました; つまり C や C。 =begin original See note about C in the L section below. =end original 以下の L 節の C に関する注意を参照してください。 =item * =begin original L has been upgraded to 2.35. =end original L はバージョン 2.35 に更新されました。 =begin original Fix interactions with C. =end original C との相互作用が修正されました。 =begin original Don't eval code under C. =end original C でコードを eval しなくなりました。 =item * =begin original L has been upgraded to version 1.27. =end original L はバージョン 1.27 に更新されました。 =begin original Fix an overloading issue with C. =end original C のオーバーロードの問題が修正されました。 =begin original C and C now check the callback first (so C<&first(1)> is disallowed). =end original C と C はまずコールバックをチェックするようになりました (従って C<&first(1)> とはできません)。 =begin original Fix C on magical values [rt.cpan.org #55763]. =end original マジカル値に対する C が修正されました [rt.cpan.org #55763]。 =begin original Fix C on previously magical values [rt.cpan.org #61118]. =end original 以前マジカルだった値に対する C が修正されました [rt.cpan.org #61118]。 =begin original Fix reading past the end of a fixed buffer [rt.cpan.org #72700]. =end original 固定バッファの末尾を超えた読み込みが修正されました [rt.cpan.org #72700]。 =item * =begin original L has been upgraded to 1.07. =end original L はバージョン 1.07 に更新されました。 =begin original No longer require C on filehandles. =end original ファイルハンドルへの C はもはや要求しなくなりました。 =begin original Use C for casefolding. =end original 文字の畳み込みに C を使うようになりました。 =item * =begin original L has been upgraded to 2.009. =end original L はバージョン 2.009 に更新されました。 =begin original Constants and functions required for IP multicast source group membership have been added. =end original IP マルチキャストソースグループメンバーシップに要求される定数と関数が 追加されました。 =begin original C and C now return just the IP address in scalar context, and C now guards against incorrect length scalars being passed in. =end original C と C は、スカラ コンテキストでは単に IP アドレスを返すようになり、C は渡された 不正な長さのスカラから保護するようになりました。 =begin original This fixes an uninitialized memory read. =end original この修正は未初期化メモリの読み込みを修正します。 =item * =begin original L has been upgraded to 2.41. =end original L はバージョン 2.41 に更新されました。 =begin original Modifying C<$_[0]> within C no longer results in crashes [perl #112358]. =end original C の中で C<$_[0]> を修正してももはや クラッシュしなくなりました [perl #112358]。 =begin original An object whose class implements C is now thawed only once when there are multiple references to it in the structure being thawed [perl #111918]. =end original C を実装しているオブジェクトは、解凍される構造で複数回 参照されるときに一度だけ解凍されるようになりました [perl #111918]。 =begin original Restricted hashes were not always thawed correctly [perl #73972]. =end original 制限ハッシュは常に正しく解凍されていませんでした [perl #73972]。 =begin original Storable would croak when freezing a blessed REF object with a C method [perl #113880]. =end original Storable は、C メソッドがある bless された REF オブジェクトを凍結させるときに croak するようになりました [perl #113880]。 =begin original It can now freeze and thaw vstrings correctly. This causes a slight incompatible change in the storage format, so the format version has increased to 2.9. =end original v文字列を正しく凍結および解凍できるようになりました。 これにより保管フォーマットに少し互換性のない変更を引き起こしたので、 フォーマットバージョンは 2.9 に増加しました。 =begin original This contains various bugfixes, including compatibility fixes for older versions of Perl and vstring handling. =end original これには様々なバグ修正を含んでいます; 古いバージョンの Perl やv文字列の扱いの 互換性の修正を含みます。 =item * =begin original L has been upgraded to 0.32. =end original L はバージョン 0.32 に更新されました。 =begin original This contains several bug fixes relating to C, Cand log levels in C, together with fixes for Windows, Haiku-OS and GNU/kFreeBSD. See F for the full details. =end original C, C および C のログレベルに 関するものに加えて、Windows, Haiku-OS, GNU/kFreeBSD に関連する いくつかのバグ修正を含んでいます。 完全な詳細については F を参照してください。 =item * =begin original L has been upgraded to 4.02. =end original L はバージョン 4.02 に更新されました。 =begin original Add support for italics. =end original 斜体に対応しました。 =begin original Improve error handling. =end original エラー処理が向上しました。 =item * =begin original L has been upgraded to 1.10. This fixes the use of the B and B shells on Windows in the event that the current drive happens to contain a F<\dev\tty> file. =end original L はバージョン 1.10 に更新されました。 これは、Windows でたまたま現在のドライブに F<\dev\tty> ファイルがあるときの B や B シェルの使用を修正します。 =item * =begin original L has been upgraded to 3.26. =end original L はバージョン 3.26 に更新されました。 =begin original Fix glob semantics on Win32 [rt.cpan.org #49732]. =end original Win32 でのグロブ意味論が修正されました [rt.cpan.org #49732]。 =begin original Don't use C when calling perl [rt.cpan.org #47890]. =end original perl を呼び出すときに C を使わなくなりました [rt.cpan.org #47890]。 =begin original Ignore -T when reading shebang [rt.cpan.org #64404]. =end original シェバンを読むときに -T を無視するようになりました [rt.cpan.org #64404]。 =begin original Handle the case where we don't know the wait status of the test more gracefully. =end original テストの待ち状態が分からない場合をより優雅に扱うようになりました。 =begin original Make the test summary 'ok' line overridable so that it can be changed to a plugin to make the output of prove idempotent. =end original テストサマリの 'ok' 行を上書きできるようになったのでprove 互換の出力を 作るためのプラグインに変更出来るようになりました。 =begin original Don't run world-writable files. =end original 全体書き込み可能ファイルを実行しなくなりました。 =item * =begin original L and L have been upgraded to 2012.0818. Support for Unicode combining characters has been added to them both. =end original L と L は 2012.0818 に更新されました。 Unicode 結合文字の扱いが両方に追加されました。 =item * =begin original L has been upgraded to 1.31. =end original L はバージョン 1.31 に更新されました。 =begin original This adds the option to warn about or ignore attempts to clone structures that can't be cloned, as opposed to just unconditionally dying in that case. =end original クローンできない構造体をクローンしようとしたときに無条件に die するのではなく、警告したり無視したりするオプションが追加されました。 =begin original This adds support for dual-valued values as created by L. =end original L によって 作成された二重値対応が追加されました。 =item * =begin original L has been upgraded to 4.3. =end original L はバージョン 4.3 に更新されました。 =begin original C now respects the offset argument to C [perl #112826]. =end original C は C へのオフセット引数を考慮するようになりました [perl #112826]。 =item * =begin original L has been upgraded to 1.2300. =end original L はバージョン 1.2300 に更新されました。 =begin original Seconds values greater than 59 but less than 60 no longer cause C and C to croak. =end original 59 より大きく 60 より小さい秒はもはや C と C で croak を引き起こさなくなりました。 =item * =begin original L has been upgraded to 0.53. =end original L はバージョン 0.53 に更新されました。 =begin original This adds a function L that returns all the casefolds. =end original これは、全ての折り畳み文字を返す関数 L を追加します。 =item * =begin original L has been upgraded to 0.47. =end original L はバージョン 0.47 に更新されました。 =begin original New APIs have been added for getting and setting the current code page. =end original 現在のコードページを取得および設定するための新しい API が追加されました。 =back =head2 Removed Modules and Pragmata (削除されたモジュールとプラグマ) =over =item * =begin original L has been removed from the core distribution. It is available under a different name: L. =end original L はコア配布から削除されました。 これは異なった名前で利用可能です: L。 =back =head1 Documentation (文書) =head2 Changes to Existing Documentation (既存の文書の変更) =head3 L =over 4 =item * =begin original L has been reorganized, and a few new sections were added. =end original L は再構成され、いくつかの新しい内容が追加されました。 =back =head3 L =over 4 =item * =begin original Now explicitly documents the behaviour of hash initializer lists that contain duplicate keys. =end original 重複したキーを持つハッシュ初期化リストの振る舞いが明示的に文書化されました。 =back =head3 L =over 4 =item * =begin original The explanation of symbolic references being prevented by "strict refs" now doesn't assume that the reader knows what symbolic references are. =end original シンボリックリファレンスが "strict refs" で妨げられるという説明は、 読者がシンボリックリンクが何かということを知っているということを 仮定しなくなりました。 =back =head3 L =over 4 =item * =begin original L has been synchronized with version 5.0150040 from CPAN. =end original L は CPAN のバージョン 5.0150040 と同期されました。 =back =head3 L =over 4 =item * =begin original The return value of C is now documented. =end original C の返り値が文書化されました。 =item * =begin original Clarified documentation of C. =end original C の文書を明確化しました。 =back =head3 L =over 4 =item * =begin original Loop control verbs (C, C, C, C and C) have always had the same precedence as assignment operators, but this was not documented until now. =end original ループ制御動詞 (C, C, C, C, C) は常に 代入演算子と同じ優先順位を持っていますが、今まで文書化されていませんでした。 =back =head3 Diagnostics (診断メッセージ) =begin original The following additions or changes have been made to diagnostic output, including warnings and fatal error messages. For the complete list of diagnostic messages, see L. =end original 以下の追加や変更が、警告や致命的エラーメッセージ含む診断出力に行われました。 完全な診断メッセージの一覧については、L を参照してください。 =head2 New Diagnostics (新しい診断メッセージ) =head3 New Errors (新しいエラー) =over 4 =item * L =begin original This message now occurs when a here document label has an initial quotation mark but the final quotation mark is missing. =end original このメッセージは、ヒヤドキュメントラベルの先頭に引用符があるけれども 末尾の引用符がない場合に起きるようになりました。 =begin original This replaces a bogus and misleading error message about not finding the label itself [perl #114104]. =end original これは、ラベル自身が見つからないという偽で誤解させるエラーメッセージを 置き換えます [perl #114104]。 =item * L =begin original This error is thrown when a child pseudo-process in the ithreads implementation on Windows was not scheduled within the time period allowed and therefore was not able to initialize properly [perl #88840]. =end original このエラーは、Windows の ithreads 実装での子疑似プロセスが定められた時間 以内に計画されず、そのため適切に初期化できなかったときに投げられます [perl #88840]。 =item * L%sE|perldiag/"Group name must start with a non-digit word character in regex; marked by <-- HERE in m/%s/"> =begin original This error has been added for C<(?&0)>, which is invalid. It used to produce an incomprehensible error message [perl #101666]. =end original このエラーは、不正である C<(?&0)> のために追加されました。 以前は不可解なエラーメッセージを生成していました [perl #101666]。 =item * L =begin original Calling an undefined value as a subroutine now produces this error message. It used to, but was accidentally disabled, first in Perl 5.004 for non-magical variables, and then in Perl v5.14 for magical (e.g., tied) variables. It has now been restored. In the mean time, undef was treated as an empty string [perl #113576]. =end original サブルーチンとして未定義値を呼び出すとこのエラーメッセージが生成されます。 以前はそうでしたが、誤って無効になっていました; 非マジカル変数に関しては Perl 5.004 から、(例えば tie されたような)マジカルな変数に関しては Perl v5.14 からです。 これは復元されました。 それまでは、undef は空文字列として扱われていました [perl #113576]。 =item * L =begin original To use lexical subs, you must first enable them: =end original レキシカルなサブルーチンを使うには、まず有効にしなければなりません: no warnings 'experimental::lexical_subs'; use feature 'lexical_subs'; my sub foo { ... } =back =head3 New Warnings (新しい警告) =over 4 =item * L<'Strings with code points over 0xFF may not be mapped into in-memory file handles'|perldiag/"Strings with code points over 0xFF may not be mapped into in-memory file handles"> =item * L<'%s' resolved to '\o{%s}%d'|perldiag/"'%s' resolved to '\o{%s}%d'"> =item * L<'Trailing white-space in a charnames alias definition is deprecated'|perldiag/"Trailing white-space in a charnames alias definition is deprecated"> =item * L<'A sequence of multiple spaces in a charnames alias definition is deprecated'|perldiag/"A sequence of multiple spaces in a charnames alias definition is deprecated"> =item * L<'Passing malformed UTF-8 to "%s" is deprecated'|perldiag/"Passing malformed UTF-8 to "%s" is deprecated"> =item * L =begin original (W closure) During compilation, an inner named subroutine or eval is attempting to capture an outer lexical subroutine that is not currently available. This can happen for one of two reasons. First, the lexical subroutine may be declared in an outer anonymous subroutine that has not yet been created. (Remember that named subs are created at compile time, while anonymous subs are created at run-time.) For example, =end original (W closure) コンパイルの間、内側の名前付きサブルーチンや eval は 現在利用できない外側のレキシカルサブルーチンを捕捉しようとしています。 これは二つの理由の一つで起こりえます。 1 番目として、レキシカルサブルーチンはまだ作成されていない外側の 無名サブルーチンで宣言されるかもしれません。 (名前付きサブルーチンはコンパイル時に作成され、一方無名サブルーチンは 実行時に作成されることを忘れないでください。) 例えば、 sub { my sub a {...} sub f { \&a } } =begin original At the time that f is created, it can't capture the current the "a" sub, since the anonymous subroutine hasn't been created yet. Conversely, the following won't give a warning since the anonymous subroutine has by now been created and is live: =end original f が作成される時点で、現在の "a" サブルーチンを捕捉することはできません; 無名サブルーチンはまだ作成されていないからです。 反対に、以下のものは警告が出ません; 無名サブルーチンは既に作成されていて 有効だからです: sub { my sub a {...} eval 'sub f { \&a }' }->(); =begin original The second situation is caused by an eval accessing a variable that has gone out of scope, for example, =end original 2 番目の状況は、eval がスコープから外れた変数にアクセスすることによって 引き起こされます; 例えば、 sub f { my sub a {...} sub { eval '\&a' } } f()->(); =begin original Here, when the '\&a' in the eval is being compiled, f() is not currently being executed, so its &a is not available for capture. =end original ここで、eval 内の '\&a' がコンパイルされるとき、f() はまだ 実行されていないので、&a は捕捉するために利用できません。 =item * L<"%s" subroutine &%s masks earlier declaration in same %s|perldiag/"%s" subroutine &%s masks earlier declaration in same %s> =begin original (W misc) A "my" or "state" subroutine has been redeclared in the current scope or statement, effectively eliminating all access to the previous instance. This is almost always a typographical error. Note that the earlier subroutine will still exist until the end of the scope or until all closure references to it are destroyed. =end original (W misc) "my" または "state" サブルーチンが同じスコープや文で再定義され、 事実上以前の実体への全てのアクセスが削除されました。 これはほとんど常にタイプミスです。 以前のサブルーチンはスコープの終了したりや全てのクロージャリファレンスが 破壊されるまでまだ存在したままであることに注意してください。 =item * L =begin original (S experimental) This warning is emitted if you enable an experimental feature via C. Simply suppress the warning if you want to use the feature, but know that in doing so you are taking the risk of using an experimental feature which may change or be removed in a future Perl version: =end original (S experimental) この警告は、C で実験的機能を有効にしたときに 出力されます。 この機能を使いたいなら単に警告を抑制してください; しかしそうすると いうことは、将来の Perl バージョンで変更されたり削除されたりする実験的機能を 使うリスクを取るということです: no warnings "experimental::lexical_subs"; use feature "lexical_subs"; =item * L =begin original (W overflow) You called C with a number that was larger than it can reliably handle and C probably slept for less time than requested. =end original (W overflow) C を信頼性を持って扱えるよりも大きな値で呼び出したので、 C はおそらく指定されたよりも短い時間だけ sleep します。 =item * L =begin original Attempts to put wide characters into environment variables via C<%ENV> now provoke this warning. =end original C<%ENV> 経由で環境変数にワイド文字を入れようとするとこの警告が 出るようになりました。 =item * "L" =begin original C now warns when passed a negative value [perl #83048]. =end original C は、負数を渡すと警告するようになりました [perl #83048]。 =item * "L" =begin original C now warns when passed a value that doesn't fit in a C (since the value will be truncated rather than overflowing) [perl #40605]. =end original C は、C に収まらない値を渡すと (値はオーバーフローするのではなく 切り詰められるので) きに警告するようになりました [perl #40605]。 =item * "L<-i used with no filenames on the command line, reading from STDIN|perldiag/"-i used with no filenames on the command line, reading from STDIN">" =begin original Running perl with the C<-i> flag now warns if no input files are provided on the command line [perl #113410]. =end original 入力ファイルがコマンドラインから提供されないときに C<-i> フラグ付きで perl を 実行すると、警告するようになりました [perl #113410]。 =back =head2 Changes to Existing Diagnostics (既存の診断メッセージの変更) =over 4 =item * L<$* is no longer supported|perldiag/"$* is no longer supported"> =begin original The warning that use of C<$*> and C<$#> is no longer supported is now generated for every location that references them. Previously it would fail to be generated if another variable using the same typeglob was seen first (e.g. C<@*> before C<$*>), and would not be generated for the second and subsequent uses. (It's hard to fix the failure to generate warnings at all without also generating them every time, and warning every time is consistent with the warnings that C<$[> used to generate.) =end original C<$*> および C<$#> の使用には対応していないという警告は、参照しているところ 全てで起こるようになりました。 以前は、同じ型グロブを使っている他の変数が先に現れると (例えば C<$*> の前に C<@*>) 生成に失敗していて、また 2 回目以降の使用では 生成されていませんでした。 (毎回生成することなく生成警告の失敗を修正するのは困難で、毎回警告するのは C<$[> が生成していた警告と一貫性があります。used to generate.) =item * =begin original The warnings for C<\b{> and C<\B{> were added. They are a deprecation warning which should be turned off by that category. One should not have to turn off regular regexp warnings as well to get rid of these. =end original C<\b{> と C<\B{> のための警告が追加されました。 これはそのカテゴリでオフにされるべき廃止予定警告です。 これらを避けるために正規表現警告をオフにする必要があるべきではありません。 =item * L =begin original Constant overloading that returns C results in this error message. For numeric constants, it used to say "Constant(undef)". "undef" has been replaced with the number itself. =end original C を返す定数オーバーロードはこのエラーメッセージを出力します。 数値定数に関しては、"Constant(undef)" となっていました。 "undef" は数値自身に置き換えられました。 =item * =begin original The error produced when a module cannot be loaded now includes a hint that the module may need to be installed: "Can't locate hopping.pm in @INC (you may need to install the hopping module) (@INC contains: ...)" =end original モジュールが読み込めなかったときに生成されるエラーには、モジュールを インストールする必要があるかも知れないことを示すヒントが 含まれるようになりました: "Can't locate hopping.pm in @INC (you may need to install the hopping module) (@INC contains: ...)" =item * L =begin original This warning was not suppressable, even with C. Now it is suppressible, and has been moved from the "internal" category to the "printf" category. =end original この警告は C でも抑制できませんでした。 これは抑制できるようになり、"internal" カテゴリから "printf" カテゴリに 移動しました。 =item * C<< Can't do {n,m} with n > m in regex; marked by <-- HERE in m/%s/ >> =begin original This fatal error has been turned into a warning that reads: =end original この致命的エラーは以下の警告になりました: L<< Quantifier {n,m} with n > m can't match in regex | perldiag/Quantifier {n,m} with n > m can't match in regex >> =begin original (W regexp) Minima should be less than or equal to maxima. If you really want your regexp to match something 0 times, just put {0}. =end original (W regexp) 最小値は最大値以下であるべきです。 本当に正規表現で何かに 0 回マッチングしたいなら、単に {0} としてください。 =item * =begin original The "Runaway prototype" warning that occurs in bizarre cases has been removed as being unhelpful and inconsistent. =end original 奇妙な状況で起きる "Runaway prototype" 警告は削除されました; これは 助けにならず一貫していないからです。 =item * =begin original The "Not a format reference" error has been removed, as the only case in which it could be triggered was a bug. =end original "Not a format reference" エラーは削除されました; これが引き起こされるかも 知れない唯一の状況はバグだからです。 =item * =begin original The "Unable to create sub named %s" error has been removed for the same reason. =end original "Unable to create sub named %s" エラーも同じ理由で削除されました。 =item * =begin original The 'Can't use "my %s" in sort comparison' error has been downgraded to a warning, '"my %s" used in sort comparison' (with 'state' instead of 'my' for state variables). In addition, the heuristics for guessing whether lexical $a or $b has been misused have been improved to generate fewer false positives. Lexical $a and $b are no longer disallowed if they are outside the sort block. Also, a named unary or list operator inside the sort block no longer causes the $a or $b to be ignored [perl #86136]. =end original 'Can't use "my %s" in sort comparison' エラーは、 '"my %s" used in sort comparison' (state 変数の場合は 'my' の代わりに 'state') 警告に格下げされました。 さらに、レキシカルな $a や $b が誤用されているかどうかを推測する ヒューリスティックは、偽陽性の生成が減少するように改良されました。 レキシカルな $a や $b は、ソートブロックの外側ならもはや 禁止されなくなりました。 また、ソートブロックの内側の名前付き単項またはリスト演算子を使うと $a や $b が無視されるということはもはやなくなりました [perl #86136]。 =back =head1 Utility Changes (ツールの変更) =head3 L =over 4 =item * =begin original F no longer produces invalid code for empty defines. [perl #20636] =end original F はもはや空定義で不正なコードを生成しなくなりました。 [perl #20636] =back =head1 Configuration and Compilation (設定とコンパイル) =over 4 =item * =begin original Added C option to Configure =end original Configure に C オプションが追加されました =begin original When set, it includes 'api_versionstring' in 'archname'. E.g. x86_64-linux-5.13.6-thread-multi. It is unset by default. =end original 設定されると、'archname' に 'api_versionstring' が含まれます。 例えば x86_64-linux-5.13.6-thread-multi。 これはデフォルトでは設定されていません。 =begin original This feature was requested by Tim Bunce, who observed that C creates a library structure that does not differentiate by perl version. Instead, it places architecture specific files in "$install_base/lib/perl5/$archname". This makes it difficult to use a common C library path with multiple versions of perl. =end original この機能は、C が perl のバージョンによって違いがない ライブラリ構造を作ることを観測した Tim Bunce によって要望されました。 代わりに、アーキテクチャ固有のファイルを "$install_base/lib/perl5/$archname" に置きます。 これにより、複数のバージョンの perl で共通の C ライブラリパスを 使うのを難しくしていました。 =begin original By setting C<-Duseversionedarchname>, the $archname will be distinct for architecture I API version, allowing mixed use of C. =end original C<-Duseversionedarchname> を設定することで、$archname はアーキテクチャ I<および> API バージョンで識別され、C を混ぜて 使えるようになります。 =item * =begin original Add a C option =end original C オプションを追加しました =begin original If C is defined, don't include "inline.h" =end original C が定義されると、"inline.h" を インクルードしません。 =begin original This permits test code to include the perl headers for definitions without creating a link dependency on the perl library (which may not exist yet). =end original これにより、テストコードが、(まだ存在しないかも知れない) perl ライブラリへの リンク依存を作ることなく perl ヘッダをインクルードできるようになります。 =item * =begin original Configure will honour the external C environment variable, if set. =end original 設定すると、Configure は外部の C 環境変数を調べます。 =item * =begin original C no longer ignores the silent option =end original C は静粛オプションを無視しなくなりました。 =item * =begin original Both C and C files are now included in the distribution. =end original C と C の両方のファイルは配布に含まれるように なりました。 =item * =begin original F will now correctly detect C when compiling with a C++ compiler. =end original C++ でコンパイルするとき、F は正しく C を 検出するようになりました。 =item * =begin original The pager detection in F has been improved to allow responses which specify options after the program name, e.g. B, if the user accepts the default value. This helps B when handling ANSI escapes [perl #72156]. =end original F のページャ検出は、ユーザーがデフォルト値を受け付けるときに プログラム名の後にオプションを指定した場合 (例えば B) に 対応するように改良されました。 これは ANSI エスケープを扱うときに B を助けます [perl #72156]。 =back =head1 Testing (テスト) =over 4 =item * =begin original The test suite now has a section for tests that require very large amounts of memory. These tests won't run by default; they can be enabled by setting the C environment variable to the number of gibibytes of memory that may be safely used. =end original テストスイートはとても大きなメモリを必要とするテストのための節を 持つようになりました。 これらのテストはデフォルトでは実行されません; C 環境変数に 安全に使えるメモリ量をギビバイト単位で指定することで有効になります。 =back =head1 Platform Support (プラットフォーム対応) =head2 Discontinued Platforms (中断したプラットフォーム) =over 4 =item BeOS =begin original BeOS was an operating system for personal computers developed by Be Inc, initially for their BeBox hardware. The OS Haiku was written as an open source replacement for/continuation of BeOS, and its perl port is current and actively maintained. =end original BeOS は Be Inc によって開発されたパソコンのためのオペレーティングシステムで、 当初は BeBox ハードウェアのためのものです。 Haiku OS は BeOS のオープンソース代替品/続編で、この perl 版は最新で活発に 保守されています。 =item UTS Global =begin original Support code relating to UTS global has been removed. UTS was a mainframe version of System V created by Amdahl, subsequently sold to UTS Global. The port has not been touched since before Perl v5.8.0, and UTS Global is now defunct. =end original UTS グローバルに関する対応コードは削除されました。 UTS は Amdahl によって作成されたメインフレーム版の System V で、その後 UTS Global によって販売されました。 この移植版は Perl v5.8.0 以前から触れられておらず、UTS Global は もうありません。 =item VM/ESA =begin original Support for VM/ESA has been removed. The port was tested on 2.3.0, which IBM ended service on in March 2002. 2.4.0 ended service in June 2003, and was superseded by Z/VM. The current version of Z/VM is V6.2.0, and scheduled for end of service on 2015/04/30. =end original VM/ESA 対応は削除されました。 この移植版は IBM が 2002 年 3 月に対応を終了した 2.3.0 で テストされていました。 2.4.0 は 2003 年 6 月に対応を終了し、Z/VM に取って代わられました。 Z/VM の現在のバージョンは V6.2.0 で、2015/04/30 に対応を終了することが 予定されています。 =item MPE/IX =begin original Support for MPE/IX has been removed. =end original MPE/IX 対応は削除されました。 =item EPOC =begin original Support code relating to EPOC has been removed. EPOC was a family of operating systems developed by Psion for mobile devices. It was the predecessor of Symbian. The port was last updated in April 2002. =end original EPOC に関連する対応コードは削除されました。 EPOC は Psion によって開発されたモバイルデバイス向けのオペレーティング システムファミリーです。 これは Symbian の祖先です。 この移植版が最後に更新されたのは 2002 年 4 月です。 =item Rhapsody =begin original Support for Rhapsody has been removed. =end original Rhapsody 対応は削除されました。 =back =head2 Platform-Specific Notes (プラットフォーム固有の注意) =head3 AIX =begin original Configure now always adds C<-qlanglvl=extc99> to the CC flags on AIX when using xlC. This will make it easier to compile a number of XS-based modules that assume C99 [perl #113778]. =end original Configure は xlC を使うときに AIX の CC フラグに常に C<-qlanglvl=extc99> を 追加するようになりました。 これにより C99 を仮定している多くの XS ベースのモジュールをコンパイルするのが より容易になります [perl #113778]。 =head3 clang++ =begin original There is now a workaround for a compiler bug that prevented compiling with clang++ since Perl v5.15.7 [perl #112786]. =end original Perl v5.15.7 から clang++ でコンパイルするのを妨げるコンパイラのバグを 回避するようになりました [perl #112786]。 =head3 C++ =begin original When compiling the Perl core as C++ (which is only semi-supported), the mathom functions are now compiled as C, to ensure proper binary compatibility. (However, binary compatibility isn't generally guaranteed anyway in the situations where this would matter.) =end original Perl コアを C++ としてコンパイルするとき(これは半対応状態です)、 mathom 関数は C でコンパイルされるようになれるようになりました; 適切なバイナリ互換性を確実にするためです。 (しかし、バイナリ互換性は、これが問題になるような状況では一般的には 保証されません。) =head3 Darwin =begin original Stop hardcoding an alignment on 8 byte boundaries to fix builds using -Dusemorebits. =end original -Dusemorebits を使ったビルドを修正するために、8 バイト境界のアライメントの ハードコーディングを止めました。 =head3 Haiku =begin original Perl should now work out of the box on Haiku R1 Alpha 4. =end original Perl は Haiku R1 Alpha 4 そのままで動作するようになったはずです。 =head3 MidnightBSD =begin original C was removed from recent versions of MidnightBSD and older versions work better with C. Threading is now enabled using C which corrects build errors with threading enabled on 0.4-CURRENT. =end original C は最近のバージョンの MidnightBSD から取り除かれ、より古い バージョンは C でよりよく動作します。 0.4-CURRENT でスレッドを有効にしたときのビルドエラーを修正するために、 スレッドは C を使って有効化されるようになりました。 =head3 Solaris =begin original In Configure, avoid running sed commands with flags not supported on Solaris. =end original Configure で、Solaris で対応していないフラグ付きの sed コマンドを 実行しないようになりました。 =head3 VMS =over =item * =begin original Where possible, the case of filenames and command-line arguments is now preserved by enabling the CRTL features C and C at start-up time. The latter only takes effect when extended parse is enabled in the process from which Perl is run. =end original 可能な場所では、起動時に CRTL 機能 C と C を有効にすることで、ファイル名とコマンドライン引数の 大文字小文字を保存するようになりました。 後者は Perl が実行されているプロセスで拡張パースが有効の場合にのみ効果が あります。 =item * =begin original The character set for Extended Filename Syntax (EFS) is now enabled by default on VMS. Among other things, this provides better handling of dots in directory names, multiple dots in filenames, and spaces in filenames. To obtain the old behavior, set the logical name C to C. =end original Extended Filename Syntax (EFS) のための文字集合は VMS ではデフォルトで 有効になりました。 特に、これはディレクトリ名のドット、ファイル名の複数のドット、ファイル名の 中のスペースをよりよい扱いを提供します。 古い振る舞いを適用するには、論理名 C を C に 設定してください。 =item * =begin original Fixed linking on builds configured with C<-Dusemymalloc=y>. =end original C<-Dusemymalloc=y> が設定されたビルドのリンクが修正されました。 =item * =begin original Experimental support for building Perl with the HP C++ compiler is available by configuring with C<-Dusecxx>. =end original HP C++ コンパイラでの Perl ビルドの実験的対応は C<-Dusecxx> 付きで 設定することで利用可能です。 =item * =begin original All C header files from the top-level directory of the distribution are now installed on VMS, providing consistency with a long-standing practice on other platforms. Previously only a subset were installed, which broke non-core extension builds for extensions that depended on the missing include files. =end original 配布の最上位ディレクトリの全ての C ヘッダファイルは VMS に インストールされるようになり、他のプラットフォームの長年の慣例との一貫性を 提供します。 以前は一部分のみがインストールされていたので、書けていたインクルード ファイルに依存していたエクステンションに関しては非コアエクステンションの ビルドを壊していました。 =item * =begin original Quotes are now removed from the command verb (but not the parameters) for commands spawned via C, backticks, or a piped C. Previously, quotes on the verb were passed through to DCL, which would fail to recognize the command. Also, if the verb is actually a path to an image or command procedure on an ODS-5 volume, quoting it now allows the path to contain spaces. =end original C、逆クォート、パイプの C で起動されるコマンドのための コマンド動詞からクォートが削除されました(引数はそのままです)。 以前は、動詞のクォートは DCL に渡され、コマンドの認識に 失敗することになっていました。 また、動詞が実際には ODS-5 ボリュームのイメージやコマンド手続きへのパスの 場合、クォートすることでスペースを含むパスが使えるようになりました。 =item * =begin original The B build has been fixed for the HP C++ compiler on OpenVMS. =end original B ビルドは OpenVMS での C++ コンパイラのために修正されました。 =back =head3 Win32 =over =item * =begin original Perl can now be built using Microsoft's Visual C++ 2012 compiler by specifying CCTYPE=MSVC110 (or MSVC110FREE if you are using the free Express edition for Windows Desktop) in F. =end original F でCCTYPE=MSVC110 (または無料の Express Express edition for Windows Desktop を使っているなら MSVC110FREE) を指定することで Microsoft の Visual C++ 2012 コンパイラを使ってビルドできるようになりました。 =item * =begin original The option to build without C has been removed. =end original C なしでビルドするオプションは削除されました。 =item * =begin original Fixed a problem where perl could crash while cleaning up threads (including the main thread) in threaded debugging builds on Win32 and possibly other platforms [perl #114496]. =end original Win32 のスレッド付きデバッグビルドおよび、可能性としては他の プラットフォームで、(メインスレッドを含む) スレッドの掃除中に クラッシュすることがある問題が修正されました [perl #114496]。 =item * =begin original A rare race condition that would lead to L taking more time than requested, and possibly even hanging, has been fixed [perl #33096]. =end original 要求したよりも長い間 L したり、ハングする可能性も あるような、稀な競合条件が修正されました [perl #33096]。 =item * =begin original C on Win32 now attempts to set C<$!> to more appropriate values based on the Win32 API error code. [perl #112272] =end original Win32 での C は、Win32 API エラーコードを基にしたより適切な値を C<$!> に 設定しようとするようになりました。 [perl #112272] =begin original Perl no longer mangles the environment block, e.g. when launching a new sub-process, when the environment contains non-ASCII characters. Known problems still remain, however, when the environment contains characters outside of the current ANSI codepage (e.g. see the item about Unicode in C<%ENV> in L). [perl #113536] =end original Perl は、例えば新しいサブプロセスを起動するとき、環境に非 ASCII 文字が 入っているときに、もはや環境ブロックを壊さなくなりました。 しかし、環境に現在の ANSI コードページの外側の文字を含む場合の既知の問題は まだ残っています (例えば、C<%ENV> 内の Unicode については L を 参照してください)。 [perl #113536] =item * =begin original Building perl with some Windows compilers used to fail due to a problem with miniperl's C operator (which uses the C program) deleting the PATH environment variable [perl #113798]. =end original 一部の Windows での perl のビルドは、 (C プログラムを使う) miniperl の C 演算子が PATH 環境変数を 削除するという問題によって失敗していました [perl #113798]。 =item * =begin original A new makefile option, C, has been added to the Windows makefiles. Set this to "define" when building a 32-bit perl if you want it to use 64-bit integers. =end original 新しい makefile オプションである C が Windows の makefile に追加されました。 32-ビット perl をビルドするときに 64-ビット整数を使いたいなら、これを "define" に設定します。 =begin original Machine code size reductions, already made to the DLLs of XS modules in Perl v5.17.2, have now been extended to the perl DLL itself. =end original マシンコードサイズの削減は、XS モジュールの DLL に対しては既に Perl v5.17.2 で行われていましたが、perl DLL 自身に拡張されました。 =begin original Building with VC++ 6.0 was inadvertently broken in Perl v5.17.2 but has now been fixed again. =end original VC++ 6.0 でのビルドは不注意により Perl v5.17.2 で壊れていましたが、 再び修正されました。 =back =head3 WinCE =begin original Building on WinCE is now possible once again, although more work is required to fully restore a clean build. =end original WinCE でのビルドは再び可能になりましたが、クリーンなビルドを完全に 復元するにはさらなる作業が必要です。 =head1 Internal Changes (内部の変更) =over =item * =begin original Synonyms for the misleadingly named C have been created: C and C. All three of these return the number of the highest index in the array, not the number of elements it contains. =end original 誤解される名前である C の同義語が作成されました: C と C。 これら三つ全ては、含んでいる要素の数ではなく、配列の最大のインデックスの値を 返します。 =item * =begin original SvUPGRADE() is no longer an expression. Originally this macro (and its underlying function, sv_upgrade()) were documented as boolean, although in reality they always croaked on error and never returned false. In 2005 the documentation was updated to specify a void return value, but SvUPGRADE() was left always returning 1 for backwards compatibility. This has now been removed, and SvUPGRADE() is now a statement with no return value. =end original SvUPGRADE() もはや式ではありません。 元々このマクロ (および基礎となる関数 sv_upgrade()) は真偽値を返すと 文書化されていましたが、実際にはエラー時には常に croak し、偽の値を 返すことはありませんでした。 2005 年に、返り値は void であるというように文書が更新されましたが、 SvUPGRADE() は後方互換性のために常に 1 を返すままで残されました。 これは削除され、SvUPGRADE() は値を返さない文になりました。 =begin original So this is now a syntax error: =end original 従ってこれは文法エラーになりました: if (!SvUPGRADE(sv)) { croak(...); } =begin original If you have code like that, simply replace it with =end original このようなコードがあるなら、単に以下のもので置き換えるか SvUPGRADE(sv); =begin original or to avoid compiler warnings with older perls, possibly =end original あるいは古い perl でのコンパイラ警告を避けるために、以下のようにしてください (void)SvUPGRADE(sv); =item * =begin original Perl has a new copy-on-write mechanism that allows any SvPOK scalar to be upgraded to a copy-on-write scalar. A reference count on the string buffer is stored in the string buffer itself. This feature is B. =end original Perl は、任意の SvPOK スカラをコピーオンライトスカラに昇格できる新しい コピーオンライト機構を持ちます。 文字列バッファの参照カウントは文字列バッファ自身に保管されます。 この機能は B<デフォルトでは有効になりません>。 =begin original It can be enabled in a perl build by running F with B<-Accflags=-DPERL_NEW_COPY_ON_WRITE>, and we would encourage XS authors to try their code with such an enabled perl, and provide feedback. Unfortunately, there is not yet a good guide to updating XS code to cope with COW. Until such a document is available, consult the perl5-porters mailing list. =end original これは B<-Accflags=-DPERL_NEW_COPY_ON_WRITE> 付きで F を実行した perl ビルドで有効にでき、私たちは XS 作者がこのように有効になった perl でコードを試して、フィードバックを提供するように勧めます。 残念ながら、COW に対応するように XS コードを更新するためのよいガイドは まだありません。 そのような文書が利用可能になるまで、perl5-porters メーリングリストに 相談してください。 =begin original It breaks a few XS modules by allowing copy-on-write scalars to go through code paths that never encountered them before. =end original これは、コピーオンライトスカラが以前は決して遭遇しなかったコードパスを 通ることを許すので、いくつかの XS モジュールを壊します。 =item * =begin original Copy-on-write no longer uses the SvFAKE and SvREADONLY flags. Hence, SvREADONLY indicates a true read-only SV. =end original コピーオンライトはもはや SvFAKE と SvREADONLY のフラグを使いません。 従って、SvREADONLY は本当の読み込み専用 SV を示します。 =begin original Use the SvIsCOW macro (as before) to identify a copy-on-write scalar. =end original コピーオンライトスカラを識別するには(今まで通り) SvIsCOW マクロを 使ってください。 =item * =begin original C is gone. =end original C はなくなりました。 =item * =begin original The private Perl_croak_no_modify has had its context parameter removed. It is now has a void prototype. Users of the public API croak_no_modify remain unaffected. =end original プライベートな Perl_croak_no_modify のコンテキスト引数は削除されました。 これは void プロトタイプに二なりました。 公式 API croak_no_modify のユーザーは影響を受けません。 =item * =begin original Copy-on-write (shared hash key) scalars are no longer marked read-only. C returns false on such an SV, but C still returns true. =end original コピーオンライト (共有ハッシュキー) スカラはもはや読み込み専用として マークされなくなりました。 C はそのような SV に対しては偽を返しますが、C は真を 返すままです。 =item * =begin original A new op type, C has been introduced. The perl peephole optimiser will, where possible, substitute a single padrange op for a pushmark followed by one or more pad ops, and possibly also skipping list and nextstate ops. In addition, the op can carry out the tasks associated with the RHS of a C<< my(...) = @_ >> assignment, so those ops may be optimised away too. =end original 新しい op 型 C が導入されました。 perl の覗き穴最適化器は、可能なら、pushmark に引き続く一つ以上の pad op を 単一の padrange に置き換え、また可能ならリストと nextstate op を飛ばします。 さらに、この op は C<< my(...) = @_ >> の RHS に関連する作業も実行できるので、 これらの op も最適化されて消えます。 =item * =begin original Case-insensitive matching inside a [bracketed] character class with a multi-character fold no longer excludes one of the possibilities in the circumstances that it used to. [perl #89774]. =end original 複数文字畳み込みのある [大かっこ] 文字クラスの内側の大文字小文字を無視した マッチングは、以前の状況での可能性の一つをもはや除かなくなりました。 [perl #89774]。 =item * =begin original C has been removed. =end original C は削除されました。 =item * =begin original The regular expression engine no longer reads one byte past the end of the target string. While for all internally well-formed scalars this should never have been a problem, this change facilitates clever tricks with string buffers in CPAN modules. [perl #73542] =end original 正規表現エンジンはもはやターゲット文字列の末尾から 1 バイト過ぎて 読み込まなくなりました。 内部で整形された全てのスカラに関しては決して問題にならないはずですが、この 変更は CPAN モジュールの文字列バッファに対する賢い小技を容易にします。 [perl #73542] =item * =begin original Inside a BEGIN block, C now points to the currently-compiling subroutine, rather than the BEGIN block itself. =end original BEGIN ブロックの内側で、C は BEGIN ブロック自身ではなく現在 コンパイルしているサブルーチンを示すようになりました。 =item * =begin original C has been deprecated. =end original C は廃止予定になりました。 =item * =begin original C now always returns a byte count and C a character count. Previously, C and C were both buggy and would sometimes returns bytes and sometimes characters. C no longer assumes that its argument is in UTF-8. Neither of these creates UTF-8 caches for tied or overloaded values or for non-PVs any more. =end original C は常にバイトカウントを、C は文字カウントを 返すようになりました。 以前は、C と C は両方ともバグ持ちで、時々バイトを返し、 時々文字を返していました。 C はもはや引数が UTF-8 であると仮定しません。 どちらももはや tie されたり オーバーロードされたりした値や 非 PV のために UTF-8 キャッシュを作成しなくなりました。 =item * =begin original C now copies string buffers of shared hash key scalars when called from XS modules [perl #79824]. =end original C は、XS モジュールから呼び出されたときに、共有ハッシュキー スカラの文字列バッファをコピーするようになりました [perl #79824]。 =item * =begin original C and C are no longer used. They are now #defined as 0. =end original C と C はもはや使われません。 これらは 0 に #define されるようになりました。 =item * =begin original The new C flag can be set by custom regular expression engines to indicate that the execution of the regular expression may cause variables to be modified. This lets C know to skip certain optimisations. Perl's own regular expression engine sets this flag for the special backtracking verbs that set $REGMARK and $REGERROR. =end original 新しい C フラグは、正規表現の実行によって変数の変更が 起きたかも知れないことを示すためにカスタム正規表現エンジンによって 設定されます。 これによって C がいくつかの最適化を飛ばせるようになります。 Perl 自身の正規表現エンジンは、$REGMARK と $REGERROR を設定する特殊な バックトラック動詞のためにこのフラグを設定します。 =item * =begin original The APIs for accessing lexical pads have changed considerably. =end original レキシカルパッドにアクセスするための API はかなり変更されました。 =begin original Cs are now longer Cs, but their own type instead. Cs now contain a C and a C of Cs, rather than Cs for the pad and the list of pad names. Cs, Cs, and Cs are to be accessed as such through the newly added pad API instead of the plain C and C APIs. See L for details. =end original C はもはや C ではなく、独自の型になりました。 C はパッドおよびパッド名のリストのための C ではなく、 C の C と C を含むようになりました。 C, C, C は当然ながら、普通の C および C の API ではなく、新しく追加されたパッド API 経由でアクセスできます。 詳しくは L を参照してください。 =item * =begin original In the regex API, the numbered capture callbacks are passed an index indicating what match variable is being accessed. There are special index values for the C<$`, $&, $&> variables. Previously the same three values were used to retrieve C<${^PREMATCH}, ${^MATCH}, ${^POSTMATCH}> too, but these have now been assigned three separate values. See L. =end original 正規表現 API で、番号付き捕捉コールバックは、どのマッチング変数が アクセスされたかを示すインデックスを渡されます。 C<$`, $&, $&> 変数のための特殊インデックス値があります。 以前は、C<${^PREMATCH}, ${^MATCH}, ${^POSTMATCH}> を取得するのに同じ三つの 値が使われていましたが、しかしこれらは三つの別々の値が 代入されるようになりました。 L を参照してください。 =item * =begin original C was previously a boolean indicating that any of C<$`, $&, $&> had been seen; it now contains three one-bit flags indicating the presence of each of the variables individually. =end original C は、以前は C<$`, $&, $&> のいずれかが現れたかどうかを 示す真偽値でした; それぞれの変数の存在を別々に示す 1 ビットのフラグを三つ 含むようになりました。 =item * =begin original The C typemap entry now supports C<&{}> overloading and typeglobs, just like C<&{...}> [perl #96872]. =end original C typemap エントリは、ちょうど C<&{...}> と同様に C<&{}> オーバーロードと型グロブに対応するようになりました [perl #96872]。 =item * =begin original The C flag to indicate overloading is now on the stash, not the object. It is now set automatically whenever a method or @ISA changes, so its meaning has changed, too. It now means "potentially overloaded". When the overload table is calculated, the flag is automatically turned off if there is no overloading, so there should be no noticeable slowdown. =end original オーバーロードを示すための C フラグはオブジェクトではなく スタッシュ置かれるようになりました。 これはメソッドや @ISA が変更されると自動的に設定されるようになったので、 意味も変わりました。 これは「オーバーロードされる可能性がある」ことを意味するようになりました。 オーバーロードテーブルが計算されるとき、このフラグはオーバーロードがなければ 自動的にオフになるので、目立つほどの速度低下はないはずです。 =begin original The staleness of the overload tables is now checked when overload methods are invoked, rather than during C. =end original オーバーロードテーブルの鮮度は、C の間ではなくオーバーロード メソッドが起動されたときにチェックされるようになりました。 =begin original "A" magic is gone. The changes to the handling of the C flag eliminate the need for it. =end original "A" マジックはなくなりました。 C フラグの扱いの変更によってこれの必要がなくなりました。 =begin original C has been removed as no longer necessary. For XS modules, it is now a macro alias to C. =end original C はもはや不要となったので削除されました。 XS モジュールについては、C へのマクロ別名となりました。 =begin original The fallback overload setting is now stored in a stash entry separate from overloadedness itself. =end original フォールバックオーバーロード設定はオーバーロード自体とは分離されたスタッシュ エントリに保管されるようになりました。 =item * =begin original The character-processing code has been cleaned up in places. The changes should be operationally invisible. =end original 文字プロセスコードはあちこちで整理されました。 変更は操作上は不可視のはずです。 =item * =begin original The C function was made a no-op in v5.16. It was simply disabled via a C statement; the code was left in place. Now the code supporting what C used to do has been removed. =end original C 関数は v5.16 から何もしないものになりました。 これは単に C 文を使って無効にされていました; コードはその場に 残されていました。 C がしていたことに対応するコードは削除されました。 =item * =begin original Under threaded perls, there is no longer a separate PV allocated for every COP to store its package name (C<< cop->stashpv >>). Instead, there is an offset (C<< cop->stashoff >>) into the new C array, which holds stash pointers. =end original スレッド対応 perl では、パッケージ名を保管するために (C<< cop->stashpv >>) もはや COP 毎に別々の PV を割り当てなくなりました。 代わりに、スタッシュポインタを保持している新しい C 配列への オフセット (C<< cop->stashoff >>) があります。 =item * =begin original In the pluggable regex API, the C struct has acquired a new field C, which is currently just for perl's internal use, and should be initialized to NULL by other regex plugin modules. =end original プラグ可能な正規表現 API で、C 構造体は新しいフィールド C を持つようになりました; これは今のところ単に perl の内部 使用のためのもので、他の正規表現プラグインモジュールによって NULL に 初期化されるべきです。 =item * =begin original A new function C has been added to the API, but is considered experimental. See L. =end original 新しい関数 C が API に追加されましたが、実験的と 考えられています。 L を参照してください。 =item * =begin original Perl used to implement get magic in a way that would sometimes hide bugs in code that could call mg_get() too many times on magical values. This hiding of errors no longer occurs, so long-standing bugs may become visible now. If you see magic-related errors in XS code, check to make sure it, together with the Perl API functions it uses, calls mg_get() only once on SvGMAGICAL() values. =end original Perl は、マジカルな値に mg_get() を多すぎる回数呼び出すことがあるコードでの バグを隠すことがある方法で get magic を実装していました。 このエラーの隠蔽はもはや起こらないので、長年のバグが目に見えるように なりました。 XS コードにマジック関連のエラーが出た場合、使っている Perl API 関数と共に、 SvGMAGICAL() 値に対して一度だけ mg_get() を呼び出しているかを チェックしてください。 =item * =begin original OP allocation for CVs now uses a slab allocator. This simplifies memory management for OPs allocated to a CV, so cleaning up after a compilation error is simpler and safer [perl #111462][perl #112312]. =end original CV の OP 割り当てにスラブアロケータを使うようになりました。 これは OP を CV に割り当てるためのメモリ管理を単純化するので、コンパイル エラーの後の掃除がより単純にかつ安全になりました [perl #111462][perl #112312]。 =item * =begin original C has been rewritten to work with the new slab allocator, allowing it to catch more violations than before. =end original C は新しいスラブアロケータで動作するように 書き直され、以前よりも多くの違反を捕捉するようになりました。 =item * =begin original The old slab allocator for ops, which was only enabled for C and C, has been retired. =end original C と C のためだけに 有効化されていた op のための古いスラブアロケータは引退しました。 =back =head1 Selected Bug Fixes (バグ修正の抜粋) =over 4 =item * =begin original Here document terminators no longer require a terminating newline character when they occur at the end of a file. This was already the case at the end of a string eval [perl #65838]. =end original ヒヤドキュメント終端子は、それがファイル末尾に現れるときにはもはや改行文字で 終端される必要がなくなりました。 これは既に文字列 eval の末尾では行われていました [perl #65838]。 =item * =begin original C<-DPERL_GLOBAL_STRUCT> builds now free the global struct B they've finished using it. =end original C<-DPERL_GLOBAL_STRUCT> ビルドは、グローバル構造体を、使い終わった B<後に> 解放するようになりました。 =item * =begin original A trailing '/' on a path in @INC will no longer have an additional '/' appended. =end original @INC のパスの末尾の '/' でもはや '/' を追加しなくなりました。 =item * =begin original The C<:crlf> layer now works when unread data doesn't fit into its own buffer. [perl #112244]. =end original C<:crlf> 層は、未読み込みデータが自身のバッファに収まらない場合でも 動作するようになりました。 [perl #112244]。 =item * =begin original C now handles UTF-8 encoded data. [perl #116322]. =end original C は UTF-8 エンコードされたデータを扱うようになりました。 [perl #116322]。 =item * =begin original A bug in the core typemap caused any C types that map to the T_BOOL core typemap entry to not be set, updated, or modified when the T_BOOL variable was used in an OUTPUT: section with an exception for RETVAL. T_BOOL in an INPUT: section was not affected. Using a T_BOOL return type for an XSUB (RETVAL) was not affected. A side effect of fixing this bug is, if a T_BOOL is specified in the OUTPUT: section (which previous did nothing to the SV), and a read only SV (literal) is passed to the XSUB, croaks like "Modification of a read-only value attempted" will happen. [perl #115796] =end original コア typemap のバグにより、T_BOOL コア typemap エントリにマッピングされている C 型は、T_BOOL 変数が RETVAL 以外の OUTPUT: 節で使われていると設定、 更新、修正されなくなっていました。 INPUT: 節の T_BOOL には影響していませんでした。 XSUB (RETVAL) に T_BOOL 返り値型を使うことには影響していませんでした。 このバグを修正した副作用は、T_BOOL は OUTPUT: 節に指定されていて(これは以前は SV に対して何もしていませんでした)、読み込み専用 SV (リテラル) が XSUB に渡された場合、"Modification of a read-only value attempted" のような croak が起こります。 [perl #115796] =item * =begin original On many platforms, providing a directory name as the script name caused perl to do nothing and report success. It should now universally report an error and exit nonzero. [perl #61362] =end original 多くのプラットフォームで、スクリプト名としてディレクトリ名を指定すると perl は何もせずに成功を報告していました。 これは一般的にエラーを報告して非ゼロを返すようになりました。 [perl #61362] =item * =begin original C under fatal warnings no longer crashes. It had begun crashing in Perl v5.16. =end original 致命的警告の元での C はもはやクラッシュしません。 Perl v5.16 からクラッシュし始めていました。 =item * =begin original Stashes blessed into each other (C) no longer result in double frees. This bug started happening in Perl v5.16. =end original 互いに bless されたスタッシュ (C) はもはや二重解放にならなくなりました。 このバグはたまたま Perl v5.16 から発生していました。 =item * =begin original Numerous memory leaks have been fixed, mostly involving fatal warnings and syntax errors. =end original 多くのメモリリークが修正されました; ほとんどは致命的警告と文法エラーに 関するものです。 =item * =begin original Some failed regular expression matches such as C<'f' =~ /../g> were not resetting C. Also, "match-once" patterns (C) failed to reset it, too, when invoked a second time [perl #23180]. =end original C<'f' =~ /../g> のようなある種の失敗した正規表現マッチングは C を リセットしていませんでした。 また、「一度だけマッチング」パターン (C) も、二回目に 起動されたときにこれのリセットに失敗していました [perl #23180]。 =item * =begin original Several bugs involving C and C causing stale MRO caches have been fixed. =end original C と C によって MRO キャッシュが古くなることによる いくつかのバグが修正されました。 =item * =begin original Defining a subroutine when its typeglob has been aliased no longer results in stale method caches. This bug was introduced in Perl v5.10. =end original 型グロブが別名化されているときにサブルーチンを定義してももはやメソッド キャッシュは古くならなくなりました。 このバグは Perl v5.10 で発生していました。 =item * =begin original Localising a typeglob containing a subroutine when the typeglob's package has been deleted from its parent stash no longer produces an error. This bug was introduced in Perl v5.14. =end original 型グロブのパッケージが親スタッシュから削除されているときにサブルーチンを含む 型グロブをローカル化してももはやエラーを出力しなくなりました。 このバグは Perl v5.14 で発生していました。 =item * =begin original Under some circumstances, C would fail to reset method caches upon scope exit. =end original ある種の状況で、C によってスコープ終了時に メソッドキャッシュのリセットに失敗していました。 =item * =begin original C is no longer an error, but produces a warning (as before) and is treated as C [perl #115818]. =end original C はもはやエラーではなく、(以前通り) 警告を出力して C として扱われます [perl #115818]。 =item * =begin original C now calls FETCH before deciding what type of goto (subroutine or label) this is. =end original C は、これがどの種類の goto か (サブルーチンかラベルか) を 決定する前に FETCH を呼び出すようになりました。 =item * =begin original Renaming packages through glob assignment (C<*Foo:: = *Bar::; *Bar:: = *Baz::>) in combination with C and C no longer makes threaded builds crash. =end original C および C の組み合わせでグロブ代入によって (C<*Foo:: = *Bar::; *Bar:: = *Baz::>) パッケージの名前を変えても、もはや スレッド付きビルドをクラッシュさせなくなりました。 =item * =begin original A number of bugs related to assigning a list to hash have been fixed. Many of these involve lists with repeated keys like C<(1, 1, 1, 1)>. =end original リストからハッシュへの代入に関連するいくつかのバグが修正されました。 これらの多くは C<(1, 1, 1, 1)> のように繰り返されるキーのリストに 関連するものです。 =over 4 =item * =begin original The expression C now returns C<4>, not C<2>. =end original 式 C は C<2> ではなく C<4> を返すように なりました。 =item * =begin original The return value of C<%h = (1, 1, 1)> in list context was wrong. Previously this would return C<(1, undef, 1)>, now it returns C<(1, undef)>. =end original リストコンテキストでの C<%h = (1, 1, 1)> の返り値は間違っていました。 以前は C<(1, undef, 1)> を返していましたが、今では C<(1, undef)> を返します。 =item * =begin original Perl now issues the same warning on C<($s, %h) = (1, {})> as it does for C<(%h) = ({})>, "Reference found where even-sized list expected". =end original Perl は C<($s, %h) = (1, {})> で C<(%h) = ({})> と同じ "Reference found where even-sized list expected" 警告を 発生させるようになりました。 =item * =begin original A number of additional edge cases in list assignment to hashes were corrected. For more details see commit 23b7025ebc. =end original さらにいくつかの境界条件でのハッシュへのリスト代入が修正されました。 さらなる詳細についてはコミット 23b7025ebc を参照してください。 =back =item * =begin original Attributes applied to lexical variables no longer leak memory. [perl #114764] =end original レキシカル変数に対して属性を適用してももはやメモリリークしなくなりました。 [perl #114764] =item * =begin original C, C, C, C, C or C followed by a bareword (or version) and then an infix operator is no longer a syntax error. It used to be for those infix operators (like C<+>) that have a different meaning where a term is expected. [perl #105924] =end original C, C, C, C, C, C のいずれかに 裸の単語 (またはバージョン) と挿入演算子が引き続いてももはや文法エラーに ならなくなりました。 以前は (C<+> のような) 挿入演算子は想定されていない場所では異なる意味を 持っていました。 [perl #105924] =item * =begin original C and C no longer produce erroneous ambiguity warnings. [perl #107002] =end original C と C はもはや間違った曖昧性警告を 生成しなくなりました。 [perl #107002] =item * =begin original Class method calls are now allowed on any string, and not just strings beginning with an alphanumeric character. [perl #105922] =end original クラスメソッド呼び出しは、英数字で始まる文字列だけでなく、任意の文字列で 可能になりました。 [perl #105922] =item * =begin original An empty pattern created with C used in C no longer triggers the "empty pattern reuses last pattern" behaviour. [perl #96230] =end original C の中で使われる、C で作られるからパターンは、もはや 「空パターンは直前のパターンを再利用する」という振る舞いを 引き起こさなくなりました。 [perl #96230] =item * =begin original Tying a hash during iteration no longer results in a memory leak. =end original 反復中にハッシュを tie してもメモリリークしなくなりました。 =item * =begin original Freeing a tied hash during iteration no longer results in a memory leak. =end original 反復中に tie されたハッシュを解放してもメモリリークしなくなりました。 =item * =begin original List assignment to a tied array or hash that dies on STORE no longer results in a memory leak. =end original tie された配列やハッシュへのリスト代入で STORE 時に die しても メモリリークしなくなりました。 =item * =begin original If the hint hash (C<%^H>) is tied, compile-time scope entry (which copies the hint hash) no longer leaks memory if FETCH dies. [perl #107000] =end original ヒントハッシュ (C<%^H>) が tie された場合、FETCH が die してもコンパイル時 スコープエントリ (これはヒントハッシュをコピーします) は メモリリークしなくなりました。 [perl #107000] =item * =begin original Constant folding no longer inappropriately triggers the special C behaviour. [perl #94490] =end original 定数畳み込みはもはや不適切に特殊な C の振る舞いを 引き起こさなくなりました。 [perl #94490] =item * =begin original C, C, and similar constructs now treat the argument to C as a simple scalar. [perl #97466] =end original C, C, および同様の構文は、 C への引数を単純なスカラとして扱うようになりました。 [perl #97466] =item * =begin original Running a custom debugging that defines no C<*DB::DB> glob or provides a subroutine stub for C<&DB::DB> no longer results in a crash, but an error instead. [perl #114990] =end original C<*DB::DB> グロブを定義していなかったり C<&DB::DB> のためのサブルーチン スタブを提供しているカスタムデバッグで実行してももはやクラッシュせず、 代わりにエラーになりました。 [perl #114990] =item * =begin original C now matches its documentation. C only resets C patterns when called with no argument. An empty string for an argument now does nothing. (It used to be treated as no argument.) [perl #97958] =end original C は文書と一致するようになりました。 C は引数なしで呼び出されたとき、C パターンのみを リセットします。 引数としてから文字列を指定した場合は何もしなくなりました。 (以前は引数なしとして扱われていました。) [perl #97958] =item * =begin original C with an argument returning an empty list no longer reads past the end of the stack, resulting in erratic behaviour. [perl #77094] =end original 空リストを返す引数の C はもはや、スタックの末尾を超えて読み込んで おかしな振る舞いをしなくなりました。 [perl #77094] =item * =begin original C<--subname> no longer produces erroneous ambiguity warnings. [perl #77240] =end original C<--subname> はもはや間違った曖昧性警告を生成しなくなりました。 [perl #77240] =item * =begin original C is now allowed as a label or package name. This was inadvertently broken when v-strings were added in Perl v5.6. [perl #56880] =end original C は、ラベルやパッケージ名として許されるようになりました。 これは Perl v5.6 でv-文字列が追加されたときに不注意で壊れていました。 [perl #56880] =item * =begin original C, C, C and C could be confused by ties, overloading, references and typeglobs if the stringification of such changed the internal representation to or from UTF-8. [perl #114410] =end original C, C, C, C は、tie、オーバーロード、 リファレンス、型グロブの文字列化によって内部表現が UTF-8 との間で変更された ときに混乱することがありました。 [perl #114410] =item * =begin original utf8::encode now calls FETCH and STORE on tied variables. utf8::decode now calls STORE (it was already calling FETCH). =end original utf8::encode は tie された変数で FETCH と STORE を呼び出すようになりました。 utf8::decode は STORE を呼び出すようになりました (これは FETCH は常に 呼び出していました)。 =item * =begin original C<$tied =~ s/$non_utf8/$utf8/> no longer loops infinitely if the tied variable returns a Latin-1 string, shared hash key scalar, or reference or typeglob that stringifies as ASCII or Latin-1. This was a regression from v5.12. =end original C<$tied =~ s/$non_utf8/$utf8/> は、tie された変数が Latin-1 文字列、 共有ハッシュキースカラ、リファレンス、あるいは ASCII または Latin-1 に 文字列化される型グロブを返すと無限ループしていましたが、もはや しなくなりました。 これは v5.12 からの退行でした。 =item * =begin original C without /e is now better at detecting when it needs to forego certain optimisations, fixing some buggy cases: =end original /e なしの C は、先立つある種の最適化が必要になるのがいつかの検出を よりよく行うようになり、いくつかのバグっぽい場合が修正されました: =over =item * =begin original Match variables in certain constructs (C<&&>, C<||>, C<..> and others) in the replacement part; e.g., C. [perl #26986] =end original 置換部のある種の構文 (C<&&>, C<||>, C<..> など) のマッチング変数; the replacement part; 例えば C。 [perl #26986] =item * =begin original Aliases to match variables in the replacement. =end original 置換での変数のマッチングへの別名。 =item * =begin original C<$REGERROR> or C<$REGMARK> in the replacement. [perl #49190] =end original 置換での C<$REGERROR> や C<$REGMARK>。 [perl #49190] =item * =begin original An empty pattern (C) that causes the last-successful pattern to be used, when that pattern contains code blocks that modify the variables in the replacement. =end original パターンが置換部で変数を変更するコードブロックを含むとき、最後に成功した パターンが使われることになる空パターン (C)。 =back =item * =begin original The taintedness of the replacement string no longer affects the taintedness of the return value of C. =end original 置換文字列の汚染性はもはや C の返り値の汚染性に影響しなくなりました。 =item * =begin original The C<$|> autoflush variable is created on-the-fly when needed. If this happened (e.g., if it was mentioned in a module or eval) when the currently-selected filehandle was a typeglob with an empty IO slot, it used to crash. [perl #115206] =end original C<$|> 自動フラッシュ変数は必要なときにその場で作成されます。 現在選択されているファイルハンドルが空 IO スロットの型グロブのときに これが起きる (つまりモジュールや eval で言及される) と、 クラッシュしていました。 [perl #115206] =item * =begin original Line numbers at the end of a string eval are no longer off by one. [perl #114658] =end original 文字列 eval の末尾の行番号はもはや一つ行き過ぎなくなりました。 [perl #114658] =item * =begin original @INC filters (subroutines returned by subroutines in @INC) that set $_ to a copy-on-write scalar no longer cause the parser to modify that string buffer in place. =end original $_ にコピーオンライトスカラを設定する @INC フィルタ (@INC 内の サブルーチンによって返されるサブルーチン) はもはやパーサが文字列バッファを その場で修正しなくなりました。 =item * =begin original C no longer returns the undefined value if the object has string overloading that returns undef. [perl #115260] =end original C はオブジェクトが undef を返す文字列オーバーロードを 持っているときにもはや未定義値を返さなくなりました。 [perl #115260] =item * =begin original The use of C, the stash name lookup cache for method calls, has been restored, =end original メソッド呼び出しのためのスタッシュ名検索キャッシュである C の 使用は復元されました。 =begin original Commit da6b625f78f5f133 in August 2011 inadvertently broke the code that looks up values in C. As it's a only cache, quite correctly everything carried on working without it. =end original 2011 年 8 月の Commit da6b625f78f5f133 は C の値を見る コードを不注意で壊していました。 これは単にキャッシュなので、ほとんど全てはこれなしで動作していました。 =item * =begin original The error "Can't localize through a reference" had disappeared in v5.16.0 when C appeared on the last line of an lvalue subroutine. This error disappeared for C<\local %$ref> in perl v5.8.1. It has now been restored. =end original "Can't localize through a reference" エラーは、C が左辺値 サブルーチンの最後の行にある場合は v5.16.0 から消えていました。 C<\local %$ref> に対するこのエラーは perl v5.8.1 で消えていました。 これは復元されました。 =item * =begin original The parsing of here-docs has been improved significantly, fixing several parsing bugs and crashes and one memory leak, and correcting wrong subsequent line numbers under certain conditions. =end original ヒヤドキュメントのパースはかなり改善し、いくつかのパースのバグおよび クラッシュと一つのメモリリークが修正され、ある種の状況での間違った引き続く 行番号が修正されました。 =item * =begin original Inside an eval, the error message for an unterminated here-doc no longer has a newline in the middle of it [perl #70836]. =end original eval の内側で、終了していないヒヤドキュメントのエラーメッセージはもはや その途中に改行を含まなくなりました [perl #70836]。 =item * =begin original A substitution inside a substitution pattern (C) no longer confuses the parser. =end original 置換パターンの内側の置換 (C) はもはやパーサを 混乱させなくなりました。 =item * =begin original It may be an odd place to allow comments, but C has always worked, I there happens to be a null character before the first #. Now it works even in the presence of nulls. =end original コメントを認めるにはおかしな場所かもしれませんが、最初の # の前にたまたま NUL 文字が I<ない限り>、C は常に動作していました。 これは NUL 文字があっても動作するようになりました。 =item * =begin original An invalid range in C or C no longer results in a memory leak. =end original C や C で不正な範囲を指定してももはや メモリリークしなくなりました。 =item * =begin original String eval no longer treats a semicolon-delimited quote-like operator at the very end (C) as a syntax error. =end original 文字列 eval はもはや末尾のセミコロン区切りのクォート風演算子 (C) を文法エラーとして扱わなくなりました。 =item * =begin original C<< warn {$_ => 1} + 1 >> is no longer a syntax error. The parser used to get confused with certain list operators followed by an anonymous hash and then an infix operator that shares its form with a unary operator. =end original C<< warn {$_ => 1} + 1 >> はもはや文法エラーではなくなりました。 パーサはある種のリスト演算子の後に無名ハッシュ、そして単項演算子と 形式を共有している挿入演算子が引き続くと混乱していました。 =item * =begin original C<(caller $n)[6]> (which gives the text of the eval) used to return the actual parser buffer. Modifying it could result in crashes. Now it always returns a copy. The string returned no longer has "\n;" tacked on to the end. The returned text also includes here-doc bodies, which used to be omitted. =end original (eval のテキストを与える) C<(caller $n)[6]> は実際のパーサバッファを 返していました。 これを変更するとクラッシュしていました。 これは常にコピーを返すようになりました。 返された文字列はもはや末尾に "\n;" を付け加えられなくなりました。 また返されたテキストは、以前は省略されていたヒヤドキュメントの本体を 含むようになりました。 =item * =begin original The UTF-8 position cache is now reset when accessing magical variables, to avoid the string buffer and the UTF-8 position cache getting out of sync [perl #114410]. =end original 文字列バッファと UTF-8 位置キャッシュの同期がずれることを防ぐために、 マジカル変数にアクセスしたときに UTF-8 位置キャッシュを リセットするようになりました [perl #114410]。 =item * =begin original Various cases of get magic being called twice for magical UTF-8 strings have been fixed. =end original マジカルな UTF-8 文字列に対して二回 get magic が呼び出される様々な場合が 修正されました。 =item * =begin original This code (when not in the presence of C<$&> etc) =end original このコードは (C<$&> などが存在しない場合) $_ = 'x' x 1_000_000; 1 while /(.)/; =begin original used to skip the buffer copy for performance reasons, but suffered from C<$1> etc changing if the original string changed. That's now been fixed. =end original 性能上の理由によりバッファのコピーを飛ばしていましたが、元の文字列が 変更された場合 C<$1> などが変更されるという影響がありました。 これは修正されました。 =item * =begin original Perl doesn't use PerlIO anymore to report out of memory messages, as PerlIO might attempt to allocate more memory. =end original Perl はメモリ不足メッセージの報告に PerlIO を使わなくなりました; PerlIO は より多いメモリを割り当てようとするかも知れないからです。 =item * =begin original In a regular expression, if something is quantified with C<{n,m}> where C m>>, it can't possibly match. Previously this was a fatal error, but now is merely a warning (and that something won't match). [perl #82954]. =end original 正規表現で、C m>> となるような C<{n,m}> で量が指定されると、 マッチングすることは不可能です。 以前はこれは致命的エラーでしたが、単なる警告になりました (そして マッチングはしません)。 [perl #82954]. =item * =begin original It used to be possible for formats defined in subroutines that have subsequently been undefined and redefined to close over variables in the wrong pad (the newly-defined enclosing sub), resulting in crashes or "Bizarre copy" errors. =end original 引き続いて未定義化されたり再定義されたりしたサブルーチンで定義された フォーマットが、間違ったパッド(新しく定義された囲んでいるサブルーチン)の 変数を隠蔽することが可能で、クラッシュしたり "Bizarre copy" エラーが 出たりしていました。 =item * =begin original Redefinition of XSUBs at run time could produce warnings with the wrong line number. =end original 実行時の XSUB の再定義は間違った行番号で警告を生成することがありました。 =item * =begin original The %vd sprintf format does not support version objects for alpha versions. It used to output the format itself (%vd) when passed an alpha version, and also emit an "Invalid conversion in printf" warning. It no longer does, but produces the empty string in the output. It also no longer leaks memory in this case. =end original sprintf フォーマット %vd はαバージョンのバージョンオブジェクトに 対応していませんでした。 αバージョンが渡されるとフォーマット自身 (%vd) が出力され、 "Invalid conversion in printf" 警告が出ていました。 これはもはや起こらず、出力としてから文字列が生成されるようになりました。 また、この場合にもはやメモリリークしなくなりました。 =item * =begin original C<< $obj->SUPER::method >> calls in the main package could fail if the SUPER package had already been accessed by other means. =end original main パッケージでの C<< $obj->SUPER::method >> 呼び出しは、SUPER パッケージが 既に他の意味でアクセスされているときに失敗することがありました。 =item * =begin original Stash aliasing (C<< *foo:: = *bar:: >>) no longer causes SUPER calls to ignore changes to methods or @ISA or use the wrong package. =end original スタッシュの別名化 (C<< *foo:: = *bar:: >>) によって SUPER 呼び出しが メソッドや @ISA の変更を無視したり間違ったパッケージを使ったりしていましたが、 もはやこれは起こらなくなりました。 =item * =begin original Method calls on packages whose names end in ::SUPER are no longer treated as SUPER method calls, resulting in failure to find the method. Furthermore, defining subroutines in such packages no longer causes them to be found by SUPER method calls on the containing package [perl #114924]. =end original 名前が ::SUPER で終わるパッケージでのメソッド呼び出しはもはや、 SUPER メソッド呼び出しと扱われてメソッド検索に失敗することがなくなりました。 さらに、そのようなパッケージでのサブルーチンを定義しても、もあはやそれを 含んでいるパッケージでの SUPER メソッド呼び出しによって 見つからなくなりました [perl #114924]。 =item * =begin original C<\w> now matches the code points U+200C (ZERO WIDTH NON-JOINER) and U+200D (ZERO WIDTH JOINER). C<\W> no longer matches these. This change is because Unicode corrected their definition of what C<\w> should match. =end original C<\w> は符号位置 U+200C (ZERO WIDTH NON-JOINER) と U+200D (ZERO WIDTH JOINER) にマッチングするようになりました。 C<\W> はもはやこれらにはマッチングしません。 この変更は、Unicode が C<\w> で何がマッチングするべきかの定義を 修正したからです。 =item * =begin original C no longer leaks its label. =end original C はもはやラベルをリークしなくなりました。 =item * =begin original Constant folding no longer changes the behaviour of functions like C and C that can take either filenames or handles. C nows treats its argument as a file name (since it is an arbitrary expression), rather than the handle "foo". =end original 定数畳み込みはもはや C や C のようなファイル名と ハンドルのどちらかを取る関数の振る舞いを変更しなくなりました。 C は (任意の式なので) ハンドル "foo" ではなく、引数を ファイル名として扱うようになりました。 =item * =begin original C no longer falls back to treating "FOO" as a file name if the filehandle has been deleted. This was broken in Perl v5.16.0. =end original C は、ファイルハンドルが既に削除されていた場合にもはや "FOO" をファイル名として扱うようにフォールバックしなくなりました。 これは Perl v5.16.0 で壊れていました。 =item * =begin original Subroutine redefinitions after sub-to-glob and glob-to-glob assignments no longer cause double frees or panic messages. =end original サブルーチンからグロブまたはグロブからグロブへの代入の後サブルーチンを 再定義してももはや二重解放やパニックメッセージを引き起こさなくなりました。 =item * =begin original C now turns vstrings into plain strings when performing a substitution, even if the resulting string is the same (C). =end original C は、例え結果の文字列が同じ (C) でも、置換を行うときに v-文字列から通常の文字列への変換を行うようになりました。 =item * =begin original Prototype mismatch warnings no longer erroneously treat constant subs as having no prototype when they actually have "". =end original プロトタイプ不一致警告は、実際にはプロトタイプが "" である定数サブルーチンを もはや間違ってプロトタイプがないものとして扱わなくなりました。 =item * =begin original Constant subroutines and forward declarations no longer prevent prototype mismatch warnings from omitting the sub name. =end original 定数サブルーチンと前方宣言は、もはやサブルーチン名を省略することから プロトタイプ不一致警告を妨げなくなりました。 =item * =begin original C on a subroutine now clears call checkers. =end original サブルーチンでの C は呼び出しチェッカをクリアするようになりました。 =item * =begin original The C operator started leaking memory on blessed objects in Perl v5.16.0. This has been fixed [perl #114340]. =end original C 演算子は Perl v5.16.0 から bless されたオブジェクトでメモリを リークさせていました。 これは修正されました [perl #114340]。 =item * =begin original C no longer tries to parse its arguments as a statement, making C a syntax error [perl #114222]. =end original C はもはや引数を文としてパースしようとして C を 文法エラーにしなくなりました [perl #114222]。 =item * =begin original On debugging builds, "uninitialized" warnings inside formats no longer cause assertion failures. =end original デバッグビルドで、フォーマットの内側での "uninitialized" 警告はもはや アサーション失敗を引き起こさなくなりました。 =item * =begin original On debugging builds, subroutines nested inside formats no longer cause assertion failures [perl #78550]. =end original デバッグビルドで、フォーマットの内側でネストしたサブルーチンはもはや アサーション失敗を引き起こさなくなりました [perl #78550]。 =item * =begin original Formats and C statements are now permitted inside formats. =end original フォーマットと C 文はフォーマットの内側でも使えるようになりました。 =item * =begin original C and C()> now always produce the same output. It was possible for the latter to refuse to close over $x if the variable was not active; e.g., if it was defined outside a currently-running named subroutine. =end original C と C()> は常に同じ出力を 生成するようになりました。 後者は、変数がアクティブでない場合、つまり現在実行されている名前付き サブルーチンの外側で定義された場合、 $x を超えて閉じることを拒否することが 可能でした。 =item * =begin original Similarly, C and C now produce the same output. This also allows "my $x if 0" variables to be seen in the debugger [perl #114018]. =end original 同様に、C と C は同じ出力を生成するように なりました。 また、これによって "my $x if 0" 変数がデバッガで見えるようになります [perl #114018]。 =item * =begin original Formats called recursively no longer stomp on their own lexical variables, but each recursive call has its own set of lexicals. =end original 再帰的に呼び出されるフォーマットはもはや自分自身のレキシカル変数を壊さず、 再帰呼び出し毎に独自のレキシカルの集合を持つようになりました。 =item * =begin original Attempting to free an active format or the handle associated with it no longer results in a crash. =end original アクティブなフォーマットやそれに関連づけられているハンドルを 解放しようとしてももはやクラッシュしなくなりました。 =item * =begin original Format parsing no longer gets confused by braces, semicolons and low-precedence operators. It used to be possible to use braces as format delimiters (instead of C<=> and C<.>), but only sometimes. Semicolons and low-precedence operators in format argument lines no longer confuse the parser into ignoring the line's return value. In format argument lines, braces can now be used for anonymous hashes, instead of being treated always as C blocks. =end original フォーマットのパーサはもはや中かっこ、セミコロン、優先順位の低い演算子で 混乱しなくなりました。 フォーマットの区切り文字に (C<=> と C<.> の代わりに) 中かっこを使うことが できましたが、時々だけでした。 パーサは、もはやフォーマット引数のセミコロンおよび優先順位の低い演算子で 混乱してその行の返り値を無視しなくなりました。 フォーマット引数行では、中かっこは常に C ブロックとして 扱われるのではなく、無名ハッシュとして使われるようになりました。 =item * =begin original Formats can now be nested inside code blocks in regular expressions and other quoted constructs (C and C) [perl #114040]. =end original フォーマットは正規表現のコードブロックやその他のクォート構文 (C と C) の内側でネスト出来るようになりました [perl #114040]。 =item * =begin original Formats are no longer created after compilation errors. =end original フォーマットはコンパイルエラーの後ではもはや作られなくなりました。 =item * =begin original Under debugging builds, the B<-DA> command line option started crashing in Perl v5.16.0. It has been fixed [perl #114368]. =end original デバッグビルドでは、B<-DA> コマンドライン引数は Perl v5.16.0 から クラッシュしていました。 これは修正されました [perl #114368]。 =item * =begin original A potential deadlock scenario involving the premature termination of a pseudo- forked child in a Windows build with ithreads enabled has been fixed. This resolves the common problem of the F test hanging on Windows [perl #88840]. =end original iスレッド付きの Windows ビルドでの疑似 fork された子の早すぎる終了に 関連する潜在的なデッドロックシナリオは修正されました。 これは Windows で F テストがハングするという一般的な問題を 解決します [perl #88840]。 =item * =begin original The code which generates errors from C could potentially read one or two bytes before the start of the filename for filenames less than three bytes long and ending C. This has now been fixed. Note that it could never have happened with module names given to C or C anyway. =end original C からのエラーを生成するコードは、3 文字より短く C で 終わっているファイル名に対してファイル名の先頭より 1 または 2 バイト手前を 読む可能性がありました。 これは修正されました。 これはどちらにしろ C や C で指定されたモジュール名では 決して起きていなかったことに注意してください。 =item * =begin original The handling of pathnames of modules given to C has been made thread-safe on VMS. =end original C で与えられるモジュールのパス名の扱いが VMS で スレッドセーフになりました。 =item * =begin original Non-blocking sockets have been fixed on VMS. =end original 非ブロックソケットは VMS で修正されました。 =item * =begin original Pod can now be nested in code inside a quoted construct outside of a string eval. This used to work only within string evals [perl #114040]. =end original Pod は文字列 eval の外側のクォートされた構文の内側の構文で ネストできるようになりました。 これは文字列 eval の内側でだけ動作していました [perl #114040]。 =item * =begin original C now looks for an empty label, producing the "goto must have label" error message, instead of exiting the program [perl #111794]. =end original C はプログラムを終了させるのではなく、空ラベルを探して、 "goto must have label" エラーメッセージを生成するようになりました [perl #111794]。 =item * =begin original C now dies with "Can't find label" instead of "goto must have label". =end original C は "goto must have label" ではなく "Can't find label" で die するようになりました。 =item * =begin original The C function C used to result in crashes when used on C<%^H> [perl #111000]. =end original C 関数 C は C<%^H> に対して使われるとクラッシュしていました [perl #111000]。 =item * =begin original A call checker attached to a closure prototype via C is now copied to closures cloned from it. So C now works inside an attribute handler for a closure. =end original C 経由でクロージャプロトタイプに付けられた 呼び出しチェッカは、そこからクローンされたクロージャに コピーされるようになりました。 これにより、C はクロージャのための属性ハンドラの内側で 動作するようになりました。 =item * =begin original Writing to C<$^N> used to have no effect. Now it croaks with "Modification of a read-only value" by default, but that can be overridden by a custom regular expression engine, as with C<$1> [perl #112184]. =end original C<$^N> への書き込みは何も起きていませんでした。 これはデフォルトでは "Modification of a read-only value" で croak するようになりましたが、C<$1> と同様カスタム正規表現エンジンで 上書きできます [perl #112184]。 =item * =begin original C on a control character glob (C) no longer emits an erroneous warning about ambiguity [perl #112456]. =end original 制御文字グロブ に対する C (C) はもはや曖昧性に関する 間違った警告を出力しなくなりました [perl #112456]。 =item * =begin original For efficiency's sake, many operators and built-in functions return the same scalar each time. Lvalue subroutines and subroutines in the CORE:: namespace were allowing this implementation detail to leak through. C used to print "BB". The same thing would happen with an lvalue subroutine returning the return value of C. Now the value is copied in such cases. =end original 性能のために、多くの演算子と組み込み関数は毎回同じスカラを返します。 しかし、左辺値サブルーチンと CORE:: 名前空間のサブルーチンではこの実装詳細が リークを起こしていました。 C は "BB" を表示していました。 同じことは C の返り値を返す左辺値サブルーチンでも起きていました。 このような場合では値はコピーされるようになりました。 =item * =begin original C syntax with an empty block or a block returning an empty list used to crash or use some random value left on the stack as its invocant. Now it produces an error. =end original 空ブロックや空リストを返すブロックでの C 文法はクラッシュしたり 呼び出し元としてスタックにランダムな値を残したりしていました。 これはエラーを生成するようになりました。 =item * =begin original C now works with extremely large offsets (E2 GB) [perl #111730]. =end original C は極端に大きなオフセット (E2 GB) でも動作するようになりました [perl #111730]。 =item * =begin original Changes to overload settings now take effect immediately, as do changes to inheritance that affect overloading. They used to take effect only after C. =end original オーバーロード設定の変更は直ちに効果を持つようになりました; オーバーロードに 影響する継承を変更するからです。 以前は C の後で飲み効果を持っていました。 =begin original Objects that were created before a class had any overloading used to remain non-overloaded even if the class gained overloading through C or @ISA changes, and even after C. This has been fixed [perl #112708]. =end original クラスがオーバーロードを持つ前に作られたオブジェクトは、例え C や @ISA の変更によってクラスにオーバーロードを得たり、 C の後でさえも、オーバーロードなしのままでした。 これは修正されました [perl #112708]。 =item * =begin original Classes with overloading can now inherit fallback values. =end original オーバーロードのあるクラスはフォールバック値を継承するようになりました。 =item * =begin original Overloading was not respecting a fallback value of 0 if there were overloaded objects on both sides of an assignment operator like C<+=> [perl #111856]. =end original オーバーロードは、C<+=> のような代入演算子の両側がオーバーロードされた オブジェクトの場合、フォールバック値 0 を考慮していませんでした [perl #111856]。 =item * =begin original C now croaks with hash and array arguments, instead of producing erroneous warnings. =end original C はハッシュや配列を引数に取ると間違った警告を生成するのではなく、 croak するようになりました。 =item * =begin original C now implies C, like C and C. =end original C は C や C と同様、 C を暗示するようになりました。 =item * =begin original Subs in the CORE:: namespace no longer crash after C when called with no argument list (C<&CORE::time> with no parentheses). =end original CORE:: 名前空間のサブルーチンは、C の後引数リストなしで 呼び出しても (かっこなしの C<&CORE::time>) もはやクラッシュしなくなりました。 =item * =begin original C no longer produces the "'/' must follow a numeric type in unpack" error when it is the data that are at fault [perl #60204]. =end original C は、間違ったデータのときにもはや "'/' must follow a numeric type in unpack" エラーを生成しなくなりました [perl #60204]。 =item * =begin original C and C<"@array"> now call FETCH only once on a tied C<$"> [perl #8931]. =end original C と C<"@array"> は tie された C<$"> に対して FETCH を一度だけ 呼び出すようになりました [perl #8931]。 =item * =begin original Some subroutine calls generated by compiling core ops affected by a C override had op checking performed twice. The checking is always idempotent for pure Perl code, but the double checking can matter when custom call checkers are involved. =end original C オーバーライドによって影響を受けるコア op の コンパイルによって生成された一部のサブルーチン呼び出しは op チェックを 2 回実行していました。 このチェックはピュア Perl コードでは常に冪等ですが、二重チェックは カスタム呼び出しチェッカが関わっているときは問題になるかもしれません。 =item * =begin original A race condition used to exist around fork that could cause a signal sent to the parent to be handled by both parent and child. Signals are now blocked briefly around fork to prevent this from happening [perl #82580]. =end original 親と子の両方で扱われるシグナルを親に送る異なる fork 関係の競合条件が 存在していました。 このようなことが起こるのを防ぐために、シグナルは fork の間一時的に ブロックされるようになりました [perl #82580]。 =item * =begin original The implementation of code blocks in regular expressions, such as C<(?{})> and C<(??{})>, has been heavily reworked to eliminate a whole slew of bugs. The main user-visible changes are: =end original C<(?{})> や C<(??{})> のような、正規表現中のコードブロックの実装は、 大量のバグを取り除くために大きく再作業されました。 ユーザーから見える主な変更は: =over 4 =item * =begin original Code blocks within patterns are now parsed in the same pass as the surrounding code; in particular it is no longer necessary to have balanced braces: this now works: =end original パターンの内側のコードブロックは周りのコードと同じパスで パースされるようになりました; 特に、釣り合った中かっこはもはや 必要ではありません: 以下のものは動作するようになりました: /(?{ $x='{' })/ =begin original This means that this error message is no longer generated: =end original これは、このエラーメッセージはもはや生成されないと言うことです: Sequence (?{...}) not terminated or not {}-balanced in regex =begin original but a new error may be seen: =end original しかし新しいエラーが起こります: Sequence (?{...}) not terminated with ')' =begin original In addition, literal code blocks within run-time patterns are only compiled once, at perl compile-time: =end original さらに、実行時パターンの内側でのリテラルなコードブロックは、perl の コンパイル時に一度だけコンパイルされます: for my $p (...) { # this 'FOO' block of code is compiled once, # at the same time as the surrounding 'for' loop /$p{(?{FOO;})/; } =item * =begin original Lexical variables are now sane as regards scope, recursion and closure behavior. In particular, C behaves (from a closure viewpoint) exactly like C, while C is like C. So this code now works how you might expect, creating three regexes that match 0, 1, and 2: =end original レキシカル変数はスコープ、再帰、クロージャの振る舞いに関して まともになりました。 特に、C は (クロージャからの視点では) 正確に C と同様で、一方 C は C と同様です。 従って以下のコードは想定しているであろう通りに動作し、0, 1, 2 に マッチングする三つの正規表現を作成します: for my $i (0..2) { push @r, qr/^(??{$i})$/; } "1" =~ $r[1]; # matches =item * =begin original The C pragma is now only required for code blocks defined at runtime; in particular in the following, the text of the C<$r> pattern is still interpolated into the new pattern and recompiled, but the individual compiled code-blocks within C<$r> are reused rather than being recompiled, and C isn't needed any more: =end original C プラグマは実行時に定義されたコードブロックでのみ 要求されるようになりました; 特に以下のように、C<$r> パターンのテキストは 新しいパターンに展開されて再コンパイルされるままですが、C<$r> の中の コンパイルされた個々のコードブロックはコンパイルされず再利用されるようになり、 C はもはや必要なくなりました: my $r = qr/abc(?{....})def/; /xyz$r/; =item * =begin original Flow control operators no longer crash. Each code block runs in a new dynamic scope, so C etc. will not see any enclosing loops. C returns a value from the code block, not from any enclosing subroutine. =end original フロー制御演算子はもはやクラッシュしなくなりました。 それぞれのコードブロックは新しい動的スコープで実行されるので、C などは 囲んでいるループを見ません。 C は囲んでいるサブルーチンからではなく、コードブロックからの値を 返します。 =item * =begin original Perl normally caches the compilation of run-time patterns, and doesn't recompile if the pattern hasn't changed, but this is now disabled if required for the correct behavior of closures. For example: =end original Perl は普通実行時パターンのコンパイルをキャッシュし、パターンが 変更されなければ再コンパイルしませんが、クロージャの正しい振る舞いのために 要求された場合無効化されるようになりました。 例えば: my $code = '(??{$x})'; for my $x (1..3) { # recompile to see fresh value of $x each time $x =~ /$code/; } =item * =begin original The C and C<(?msix)> etc. flags are now propagated into the return value from C<(??{})>; this now works: =end original C や C<(?msix)> などのフラグは C<(??{})> からの返り値に 伝搬するようになりました; 以下のものは動作するようになりました: "AB" =~ /a(??{'b'})/i; =item * =begin original Warnings and errors will appear to come from the surrounding code (or for run-time code blocks, from an eval) rather than from an C: =end original 警告とエラーは C からではなく周りのコード (または実行時 コードブロックの場合は eval) から起こるように見えるようになりました: use re 'eval'; $c = '(?{ warn "foo" })'; /$c/; /(?{ warn "foo" })/; =begin original formerly gave: =end original 以前は以下のようになっていました: foo at (re_eval 1) line 1. foo at (re_eval 2) line 1. =begin original and now gives: =end original 今では以下のようになります: foo at (eval 1) line 1. foo at /some/prog line 2. =back =item * =begin original Perl now can be recompiled to use any Unicode version. In v5.16, it worked on Unicodes 6.0 and 6.1, but there were various bugs if earlier releases were used; the older the release the more problems. =end original Perl は全てのリリースの Unicode を使って再コンパイル出来るようになりました。 v5.16 では、Unicode 6.0 と 6.1 では動作していましたが、それ以前の リリースを使うと、様々なバグがありました; リリースが古いものほど多くの問題が ありました。 =item * =begin original C no longer produces "uninitialized" warnings in lvalue context [perl #9423]. =end original C はもはや左辺値コンテキストで "uninitialized" 警告を 生成しなくなりました [perl #9423]。 =item * =begin original An optimization involving fixed strings in regular expressions could cause a severe performance penalty in edge cases. This has been fixed [perl #76546]. =end original 正規表現での固定文字列に関する最適化は、極端な状況で大きな性能上の ペナルティを引き起こしていました。 これは修正されました [perl #76546]。 =item * =begin original In certain cases, including empty subpatterns within a regular expression (such as C<(?:)> or C<(?:|)>) could disable some optimizations. This has been fixed. =end original ある種の状況では、(C<(?:)> や C<(?:|)> のように) 正規表現中に空部分パターンを 含んでいると一部の最適化が無効になることがありました。 これは修正されました。 =item * =begin original The "Can't find an opnumber" message that C produces when passed a string like "CORE::nonexistent_keyword" now passes UTF-8 and embedded NULs through unchanged [perl #97478]. =end original "CORE::nonexistent_keyword" のような文字列が渡されたときに C が 生成する "Can't find an opnumber" メッセージは、UTF-8 と組み込みの NUL を 無変更で渡すようになりました。 =item * =begin original C now treats magical variables like C<$1> the same way as non-magical variables when checking for the CORE:: prefix, instead of treating them as subroutine names. =end original C は、CORE:: 前置詞をチェックするとき、C<$1> のようなマジカル 変数を、サブルーチン名として扱うのではなく、非マジカル変数と同じように 扱うようになりました。 =item * =begin original Under threaded perls, a runtime code block in a regular expression could corrupt the package name stored in the op tree, resulting in bad reads in C, and possibly crashes [perl #113060]. =end original スレッド化 perl では、正規表現内の実行時コードブロックは構文木に保管された パッケージ名を壊して、C で間違った結果を読んだり、クラッシュする 可能性がありました [perl #113060]。 =item * =begin original Referencing a closure prototype (C<\&{$_[1]}> in an attribute handler for a closure) no longer results in a copy of the subroutine (or assertion failures on debugging builds). =end original クロージャプロトタイプの参照 (クロージャのための属性ハンドラでの C<\&{$_[1]}>) はもはやサブルーチンのコピー (またはデバッグビルドでの アサーション失敗) を引き起こさなくなりました。 =item * =begin original C now returns the right answer on threaded builds if the current package has been assigned over (as in C<*ThisPackage:: = *ThatPackage::>) [perl #78742]. =end original C は、(C<*ThisPackage:: = *ThatPackage::> のように) 現在のパッケージが上書きされた場合、スレッド化ビルドで正しい答えを 返すようになりました [perl #78742]。 =item * =begin original If a package is deleted by code that it calls, it is possible for C to see a stack frame belonging to that deleted package. C could crash if the stash's memory address was reused for a scalar and a substitution was performed on the same scalar [perl #113486]. =end original 呼び出したコードでパッケージが削除されると、C が削除された パッケージが所有するスタックフレームを見る可能性がありました。 スタッシュのメモリアドレスがスカラに再利用され、置換が同じスカラで 実行されると、C がクラッシュすることがありました [perl #113486]。 =item * =begin original C no longer treats its first argument differently depending on whether it is a string or number internally. =end original C は、もはや最初の引数が内部で文字列か数値かに依存して 異なった扱いをしなくなりました。 =item * =begin original C with C<< <& >> for the mode checks to see whether the third argument is a number, in determining whether to treat it as a file descriptor or a handle name. Magical variables like C<$1> were always failing the numeric check and being treated as handle names. =end original モードに C<< <& >> を持つ C は、ファイル記述子として扱うか ハンドル名として扱うかを決定するために、第 3 引数が数値かどうかを チェックします。 C<$1> のようなマジカル変数は常に数値チェックに失敗し、ハンドル名として 扱われます。 =item * =begin original C's handling of magical variables (C<$1>, ties) has undergone several fixes. C is only called once now on a tied argument or a tied C<$@> [perl #97480]. Tied variables returning objects that stringify as "" are no longer ignored. A tied C<$@> that happened to return a reference the I time it was used is no longer ignored. =end original マジカル変数 (C<$1>, tie) の C の扱いはいくつか修正されました。 C は tie された引数や tie された C<$@> で一度だけ 呼び出されるようになりました [perl #97480]。 "" に文字列化されるオブジェクトを返す tie された変数はもはや 無視されなくなりました。 tie された C<$@> がたまたま I<前回> 使われたリファレンスを返しても もはや無視されなくなりました。 =item * =begin original C now treats C<$@> with a number in it the same way, regardless of whether it happened via C<$@=3> or C<$@="3">. It used to ignore the former. Now it appends "\t...caught", as it has always done with C<$@="3">. =end original C は、たまたま C<$@=3> 経由か C<$@="3"> 経由かに関わらず、 C<$@> を同じように数値として扱うようになりました。 以前は前者は無視していました。 常に C<$@="3"> で行われていたように、"\t...caught" が 追加されるようになりました。 =item * =begin original Numeric operators on magical variables (e.g., S>) used to use floating point operations even where integer operations were more appropriate, resulting in loss of accuracy on 64-bit platforms [perl #109542]. =end original マジカル変数に対する数値演算子 (例えば S>) は、整数演算が より適切な場合でも浮動小数点数演算を使っていて、64-ビットプラットフォームで 精度を失っていました [perl #109542]。 =item * =begin original Unary negation no longer treats a string as a number if the string happened to be used as a number at some point. So, if C<$x> contains the string "dogs", C<-$x> returns "-dogs" even if C<$y=0+$x> has happened at some point. =end original 単項否定は、文字列がどこかで数値として使われていても、もはや文字列を 数値として扱わなくなりました。 それで、C<$x> に文字列 "dogs" を含んでいると、例え C<$y=0+$x> がどこかで あっても、C<-$x> は "-dogs" を返します。 =item * =begin original In Perl v5.14, C<-'-10'> was fixed to return "10", not "+10". But magical variables (C<$1>, ties) were not fixed till now [perl #57706]. =end original Perl v5.14 で、C<-'-10'> は "+10" ではなく "10" を返すように修正されました。 しかしマジカル変数 (C<$1>, tie) は今まで修正されていませんでした [perl #57706]。 =item * =begin original Unary negation now treats strings consistently, regardless of the internal C flag. =end original 単項否定は内部 C フラグに関わらず文字列を一貫性を持って 扱うようになりました。 =item * =begin original A regression introduced in Perl v5.16.0 involving C/I/> has been fixed. Only the first instance is supposed to be meaningful if a character appears more than once in C>. Under some circumstances, the final instance was overriding all earlier ones. [perl #113584] =end original Perl v5.16.0 で導入された、C/I/> に 関連する退行が修正されました。 ある文字が複数回 C> に現れると、最初の実体のみが 意味を持つことになっています。 ある種の状況では、最後の実体がその前のものを上書きしていました。 [perl #113584] =item * =begin original Regular expressions like C previously silently inserted a NUL character, thus matching as if it had been written C. Now it matches as if it had been written as C, with a message that the sequence C<"\8"> is unrecognized. =end original C のような正規表現は以前は暗黙に NUL 文字を挿入し、従って C と書かれていたかのようにマッチングしていました。 これは、並び C<"\8"> が認識出来ないというメッセージと共に、 C と書かれていたかのようにマッチングするようになりました。 =item * =begin original C<__SUB__> now works in special blocks (C, C, etc.). =end original C<__SUB__> は特殊ブロック (C, C など) でも動作するように なりました。 =item * =begin original Thread creation on Windows could theoretically result in a crash if done inside a C block. It still does not work properly, but it no longer crashes [perl #111610]. =end original Windows でのスレッド作成は、C ブロックの内側で行われると、理論的には クラッシュすることがありました。 これはまだ適切に動作しませんが、もはやクラッシュすることはなくなりました [perl #111610]。 =item * =begin original C<\&{''}> (with the empty string) now autovivifies a stub like any other sub name, and no longer produces the "Unable to create sub" error [perl #94476]. =end original C<\&{''}> (with the empty string) はその他のサブルーチン名と同様にスタブを 自動有効化し、もはや "Unable to create sub" エラーを生成しなくなりました [perl #94476]。 =item * =begin original A regression introduced in v5.14.0 has been fixed, in which some calls to the C module would clobber C<$_> [perl #113750]. =end original C モジュールへの一部の呼び出しが C<$_> を上書きするという、v5.14.0 で 導入された退行が修正されました [perl #113750]。 =item * =begin original C now always either sets or clears C<$@>, even when the file can't be read. This ensures that testing C<$@> first (as recommended by the documentation) always returns the correct result. =end original C は、例えファイルが読み込めなくても、C<$@> を設定または クリアします。 これにより、(文書で勧められているように) 先に C<$@> をテストすると常に 正しい結果を返します。 =item * =begin original The array iterator used for the C construct is now correctly reset when C<@array> is cleared [perl #75596]. This happens, for example, when the array is globally assigned to, as in C<@array = (...)>, but not when its B are assigned to. In terms of the XS API, it means that C will now reset the iterator. =end original C 構文で使われる配列反復子は、C<@array> がクリアされたときに 正しくリセットされるようになりました [perl #75596]。 これは例えば C<@array = (...)> のように配列がグローバルに代入されたときに 起き、その B<値> が代入された時には起きません。 XS API に関して、これは C は反復子をリセットするということです。 =begin original This mirrors the behaviour of the hash iterator when the hash is cleared. =end original これはハッシュがクリアされたときのハッシュ反復子の振る舞いを反映しています。 =item * =begin original C<< $class->can >>, C<< $class->isa >>, and C<< $class->DOES >> now return correct results, regardless of whether that package referred to by C<$class> exists [perl #47113]. =end original C<< $class->can >>, C<< $class->isa >>, C<< $class->DOES >> は、 C<$class> で参照しているパッケージが存在するかどうかに関わらず、正しい結果を 返すようになりました [perl #47113]。 =item * =begin original Arriving signals no longer clear C<$@> [perl #45173]. =end original シグナルが届いてももはや C<$@> をクリアしなくなりました [perl #45173]。 =item * =begin original Allow C declarations with an empty variable list [perl #113554]. =end original 空変数リストの C 宣言が許されるようになりました [perl #113554]。 =item * =begin original During parsing, subs declared after errors no longer leave stubs [perl #113712]. =end original パース中、エラーの後に宣言されたサブルーチンはもはやスタブを 残さなくなりました [perl #113712]。 =item * =begin original Closures containing no string evals no longer hang on to their containing subroutines, allowing variables closed over by outer subroutines to be freed when the outer sub is freed, even if the inner sub still exists [perl #89544]. =end original 文字列 eval を含まないクロージャはもはや含んでいるサブルーチンでハングせず、 内側のサブルーチンがまだ存在しているにも関わらず外側のサブルーチンが 解放されたとき、解放された外側のサブルーチンによって変数が 隠蔽されなくなりました [perl #89544]。 =item * =begin original Duplication of in-memory filehandles by opening with a "<&=" or ">&=" mode stopped working properly in v5.16.0. It was causing the new handle to reference a different scalar variable. This has been fixed [perl #113764]. =end original "<&=" または ">&=" のモードで開くことでのメモリ内ファイルハンドルの複製は、 v5.16.0 から適切に動作しなくなっていました。 これにより新しいハンドルが異なったスカラ変数を参照することになっていました。 これは修正されました [perl #113764]。 =item * =begin original C expressions no longer crash with custom regular expression engines that do not set C at regular expression compilation time [perl #112962]. =end original C 式は、もはや正規表現のコンパイル時に C を設定しないカスタム 正規表現エンジンでクラッシュしなくなりました [perl #112962]。 =item * =begin original C no longer crashes with certain magical arrays and hashes [perl #112966]. =end original C はもはやある種のマジカルな配列やハッシュで クラッシュしなくなりました [perl #112966]。 =item * =begin original C on elements of certain magical arrays and hashes used not to arrange to have the element deleted on scope exit, even if the element did not exist before C. =end original ある種のマジカルな配列やハッシュの要素に対する C は、例え要素が C の前に存在していなくても、スコープ終了時に要素の削除を 手配していませんでした。 =item * =begin original C no longer returns multiple items [perl #73690]. =end original C はもはや複数のアイテムを返さなくなりました [perl #73690]。 =item * =begin original String to floating point conversions no longer misparse certain strings under C [perl #109318]. =end original 文字列から浮動小数点数への変換はもはや C の基である種の文字列の パースを間違わなくなりました [perl #109318]。 =item * =begin original C<@INC> filters that die no longer leak memory [perl #92252]. =end original die する C<@INC> フィルタはもはやメモリリークしなくなりました [perl #92252]。 =item * =begin original The implementations of overloaded operations are now called in the correct context. This allows, among other things, being able to properly override C<< <> >> [perl #47119]. =end original オーバーロードされた演算子の実装は正しいコンテキストで呼び出されるように なりました。 これにより、特に C<< <> >> を適切にオーバーライド出来るようになりました [perl #47119]。 =item * =begin original Specifying only the C key when calling C now behaves properly [perl #113010]. =end original C を呼び出すときに C キーのみを指定されても 正しく振る舞うようになりました [perl #113010]。 =item * =begin original C<< sub foo { my $a = 0; while ($a) { ... } } >> and C<< sub foo { while (0) { ... } } >> now return the same thing [perl #73618]. =end original C<< sub foo { my $a = 0; while ($a) { ... } } >> と C<< sub foo { while (0) { ... } } >> は同じものを返すようになりました [perl #73618]。 =item * =begin original String negation now behaves the same under C as it does without [perl #113012]. =end original 文字列否定は C が指定されているときも指定されていないときと 同じように振る舞うようになりました [perl #113012]。 =item * =begin original C now returns the Unicode replacement character (U+FFFD) for -1, regardless of the internal representation. -1 used to wrap if the argument was tied or a string internally. =end original C は -1 に対して内部表現に関わらず Unicode 置換文字 (U+FFFD) を 返すようになりました。 引数が tie されていたり内部で文字列の場合 -1 が回り込んでいました。 =item * =begin original Using a C after its enclosing sub was freed could crash as of perl v5.12.0, if the format referenced lexical variables from the outer sub. =end original フォーマットが外側のサブルーチンからのレキシカル変数を参照しているときに 囲んでいるサブルーチンが解放されてから C を使うと、perl v5.12.0 以降 クラッシュしていました。 =item * =begin original Using a C after its enclosing sub was undefined could crash as of perl v5.10.0, if the format referenced lexical variables from the outer sub. =end original フォーマットが外側のサブルーチンからのレキシカル変数を参照しているときに 囲んでいるサブルーチンが未定義化されてから C を使うと、perl v5.10.0 以降クラッシュしていました。 =item * =begin original Using a C defined inside a closure, which format references lexical variables from outside, never really worked unless the C call was directly inside the closure. In v5.10.0 it even started crashing. Now the copy of that closure nearest the top of the call stack is used to find those variables. =end original 外側からのレキシカル変数を参照するような、クロージャの内側で定義された C の使用は、C 呼び出しが直接クロージャの内側でない限り 実際には動作していませんでした。 v5.10.0 ではクラッシュし始めていました。 これらの変数を探すために、呼び出しスタックの先頭にもっとも近いクロージャの コピーが使われるようになりました。 =item * =begin original Formats that close over variables in special blocks no longer crash if a stub exists with the same name as the special block before the special block is compiled. =end original 特殊ブロックがコンパイルされる前に特殊ブロックと同じ名前のスタブが 存在する場合、特殊ブロックの変数を隠すフォーマットはもはや クラッシュしなくなりました。 =item * =begin original The parser no longer gets confused, treating C as a syntax error if preceded by C [perl #16249]. =end original C が前にあるとパーサが混乱して C を文法エラーとして 扱っていましたが、これはもはや起こらなくなりました [perl #16249]。 =item * =begin original The return value of C is no longer truncated on 64-bit platforms [perl #113980]. =end original C の返り値はもはや 64-ビットプラットフォームで 切り詰められなくなりました [perl #113980]。 =item * =begin original Constant folding no longer causes C to print to the FOO handle [perl #78064]. =end original 定数畳み込みはもはや C で FOO ハンドルを 表示しなくなりました [perl #78064]。 =item * =begin original C now calls the named subroutine and uses the file name it returns, instead of opening a file named "subname". =end original C は、"subname" というファイルを開くのではなく、名前付き サブルーチンを呼び出してその返り値をファイル名として使うようになりました。 =item * =begin original Subroutines looked up by rv2cv check hooks (registered by XS modules) are now taken into consideration when determining whether C should be the sub call C or the method call C<< "bar"->foo >>. =end original (XS モジュールによって登録される) rv2cv チェックフックによる サブルーチン検索は、C がサブルーチン呼び出し C か メソッド呼び出し C<< "bar"->foo >> かをいつ決定するかを考慮に 入れるようになりました。 =item * =begin original C is no longer treated specially, allowing global overrides to be called directly via C [perl #113016]. =end original C はもはや特別に扱われなくなり、 C 経由で直接呼び出せるグローバルなオーバーライドが 可能になりました [perl #113016]。 =item * =begin original Calling an undefined sub whose typeglob has been undefined now produces the customary "Undefined subroutine called" error, instead of "Not a CODE reference". =end original 型グロブが未定義である、未定義サブルーチンを呼び出すと、 "Not a CODE reference" ではなく、通常の "Undefined subroutine called" エラーが生成されるようになりました。 =item * =begin original Two bugs involving @ISA have been fixed. C<*ISA = *glob_without_array> and C would prevent future modifications to @ISA from updating the internal caches used to look up methods. The *glob_without_array case was a regression from Perl v5.12. =end original @ISA に関連する二つのバグが修正されました。 C<*ISA = *glob_without_array> と C は、@ISA の将来の 変更が、メソッド検索に使われる内部キャッシュを更新することを妨げていました。 *glob_without_array の場合は Perl v5.12 からの退行でした。 =item * =begin original Regular expression optimisations sometimes caused C<$> with C to produce failed or incorrect matches [perl #114068]. =end original 正規表現最適化によって C 付きの C<$> がマッチングに失敗したり間違ったり していました [perl #114068]。 =item * =begin original C<__SUB__> now works in a C block when the enclosing subroutine is predeclared with C syntax [perl #113710]. =end original C<__SUB__> は C ブロックで、内側のサブルーチンが C 文法で 先行宣言されているときに動作するようになりました [perl #113710]。 =item * =begin original Unicode properties only apply to Unicode code points, which leads to some subtleties when regular expressions are matched against above-Unicode code points. There is a warning generated to draw your attention to this. However, this warning was being generated inappropriately in some cases, such as when a program was being parsed. Non-Unicode matches such as C<\w> and C<[:word:]> should not generate the warning, as their definitions don't limit them to apply to only Unicode code points. Now the message is only generated when matching against C<\p{}> and C<\P{}>. There remains a bug, [perl #114148], for the very few properties in Unicode that match just a single code point. The warning is not generated if they are matched against an above-Unicode code point. =end original Unicode 特性は Unicode 符号位置にのみ適用されるため、正規表現が 上位 Unicode 符号位置に対してマッチングするときに微妙なことが起こります。 これに注意を向けるために生成される警告があります。 しかしこの警告は、プログラムがパースされたときのような一部の場合に 不適切に生成されていました。 C<\w> や C<[:word:]> のような非 Unicode マッチングは、定義上 Unicode 符号位置にだけ適用するように制限されていないので、この警告を 生成するべきではありません。 このメッセージは C<\p{}> および C<\P{}> に対してマッチングするときにのみ 生成されるようになりました。 単に単一の符号位置にマッチングする Unicode のごく僅かな特性に関する [perl #114148] バグが残っています。 上述の Unicode 符号位置に対してマッチングする場合は警告は生成されません。 =item * =begin original Uninitialized warnings mentioning hash elements would only mention the element name if it was not in the first bucket of the hash, due to an off-by-one error. =end original ハッシュ要素に言及する未初期化警告は、ハッシュの最初のバケツ以外だった場合、 off-by-one エラーによって、要素名だけに言及していました。 =item * =begin original A regular expression optimizer bug could cause multiline "^" to behave incorrectly in the presence of line breaks, such that C<"/\n\n" =~ m#\A(?:^/$)#im> would not match [perl #115242]. =end original 正規表現最適化器のバグにより、複数行 "^" が改行の存在を正しく扱えず、 C<"/\n\n" =~ m#\A(?:^/$)#im> のようなものががマッチングしないことが ありました [perl #115242]。 =item * =begin original Failed C in list context no longer corrupts the stack. C<@a = (1, 2, fork, 3)> used to gobble up the 2 and assign C<(1, undef, 3)> if the C call failed. =end original リストコンテキストで C が失敗してももはやスタックが壊れなくなりました。 C<@a = (1, 2, fork, 3)> は、C が失敗すると 2 を食べてしまって C<(1, undef, 3)> を代入していました。 =item * =begin original Numerous memory leaks have been fixed, mostly involving tied variables that die, regular expression character classes and code blocks, and syntax errors. =end original 様々なメモリリークが修正されました; ほとんどは die した tie 変数、 正規表現文字クラスとコードブロック、文法エラーに関するものです。 =item * =begin original Assigning a regular expression (C<${qr//}>) to a variable that happens to hold a floating point number no longer causes assertion failures on debugging builds. =end original 正規表現 (C<${qr//}>) を、たまたま浮動小数点数を保持していた変数に 代入しても、もはやデバッグビルドでアサーション失敗を 引き起こさなくなりました。 =item * =begin original Assigning a regular expression to a scalar containing a number no longer causes subsequent numification to produce random numbers. =end original 数値を保持していたスカラに正規表現を代入しても、もはや引き続く数値化が ランダムな数値を生成しなくなりました。 =item * =begin original Assigning a regular expression to a magic variable no longer wipes away the magic. This was a regression from v5.10. =end original 正規表現のマジカル変数への代入はもはやマジックを削除しなくなりました。 これは v5.10 からの退行でした。 =item * =begin original Assigning a regular expression to a blessed scalar no longer results in crashes. This was also a regression from v5.10. =end original 正規表現の bless された変数への代入はもはやクラッシュしなくなりました。 これも v5.10 からの退行でした。 =item * =begin original Regular expression can now be assigned to tied hash and array elements with flattening into strings. =end original 正規表現は、文字列に平坦化されて tie されたハッシュや配列に 代入できるようになりました。 =item * =begin original Numifying a regular expression no longer results in an uninitialized warning. =end original 正規表現の数値化はもはや非初期化警告を出さなくなりました。 =item * =begin original Negative array indices no longer cause EXISTS methods of tied variables to be ignored. This was a regression from v5.12. =end original tie された変数に対する負数の配列インデックスはもはや EXISTS メソッドを 無視しなくなりました。 これは v5.12 からの退行でした。 =item * =begin original Negative array indices no longer result in crashes on arrays tied to non-objects. =end original 非オブジェクトに tie された配列に対する負数の配列インデックスはもはや クラッシュしなくなりました。 =item * =begin original C<$byte_overload .= $utf8> no longer results in doubly-encoded UTF-8 if the left-hand scalar happened to have produced a UTF-8 string the last time overloading was invoked. =end original C<$byte_overload .= $utf8> は、左側のスカラがたまたま最後にオーバーロードが 起動されたときに UTF-8 文字列を生成していたときにも、もはや二重に UTF-8 に エンコードされなくなりました。 =item * =begin original C now uses the current value of @_, instead of using the array the subroutine was originally called with. This means C now works [perl #43077]. =end original C は、サブルーチンがもともと呼ばれたときのものではなく、現在の 値の @_ を使うようになりました。 これは、C が動作するようになったということです [perl #43077]。 =item * =begin original If a debugger is invoked recursively, it no longer stomps on its own lexical variables. Formerly under recursion all calls would share the same set of lexical variables [perl #115742]. =end original デバッガが再帰的に起動されたとき、もはや自分自身のレキシカル変数を 踏みつけなくなりました。 以前は再帰したときには全ての呼び出しは同じレキシカル変数の集合を 共有していました [perl #115742]。 =item * =begin original C<*_{ARRAY}> returned from a subroutine no longer spontaneously becomes empty. =end original サブルーチンから返された C<*_{ARRAY}> はもはや自然に空にならなくなりました。 =back =head1 Known Problems (既知の問題) =over 4 =item * =begin original UTF8-flagged strings in C<%ENV> on HP-UX 11.00 are buggy =end original HP-UX 11.00 での C<%ENV> 内の UTF8 フラグがついた文字列はバグがある =begin original The interaction of UTF8-flagged strings and C<%ENV> on HP-UX 11.00 is currently dodgy in some not-yet-fully-diagnosed way. Expect test failures in F, followed by unknown behavior when storing wide characters in the environment. =end original HP-UX 11.00 での UTF8 フラグ付きの文字列と C<%ENV> の相互作用は現在の所 まだ完全に診断されていない形の危険があります。 F での想定されているテスト失敗に引き続いて、環境にワイド文字を 保管すると明らかでない振る舞いがあります。 =back =head1 Obituary (お悔やみ) =begin original Hojung Yoon (AMORETTE), 24, of Seoul, South Korea, went to his long rest on May 8, 2013 with llama figurine and autographed TIMTOADY card. He was a brilliant young Perl 5 & 6 hacker and a devoted member of Seoul.pm. He programmed Perl, talked Perl, ate Perl, and loved Perl. We believe that he is still programming in Perl with his broken IBM laptop somewhere. He will be missed. =end original 韓国ソウルの 24 才 Hojung Yoon (AMORETTE) は、ラマの人形およびサイン入り TIMTOADY カードと共に長い眠りにつきました。 彼は素晴らしい若手 Perl 5 & 6 ハッカーであり、Seoul.pm の献身的な メンバーでした。 彼は Perl をプログラムし、Perl を話し、Perl を食べ、Perl を愛していました。 私たちは、彼が今でもどこかで彼の壊れた IBM ラップトップで Perl で プログラミングしていると信じています。 お悔やみを申し上げます。 =head1 Acknowledgements =begin original Perl v5.18.0 represents approximately 12 months of development since Perl v5.16.0 and contains approximately 400,000 lines of changes across 2,100 files from 113 authors. =end original Perl v5.18.0 は、Perl v5.16.0 以降、113 人の作者によって、 2,100 のファイルに約 400,000 行の変更を加えて、 約 12 months開発されてきました。 =begin original Perl continues to flourish into its third decade thanks to a vibrant community of users and developers. The following people are known to have contributed the improvements that became Perl v5.18.0: =end original Perl は、活気のあるユーザーと開発者のコミュニティのおかげで 20 年を超えて 繁栄しています。 以下の人々が、Perl v5.18.0 になるための改良に貢献したことが分かっています: Aaron Crane, Aaron Trevena, Abhijit Menon-Sen, Adrian M. Enache, Alan Haggai Alavi, Alexandr Ciornii, Andrew Tam, Andy Dougherty, Anton Nikishaev, Aristotle Pagaltzis, Augustina Blair, Bob Ernst, Brad Gilbert, Breno G. de Oliveira, Brian Carlson, Brian Fraser, Charlie Gonzalez, Chip Salzenberg, Chris 'BinGOs' Williams, Christian Hansen, Colin Kuskie, Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel Dragan, Daniel Perrett, Darin McBride, Dave Rolsky, David Golden, David Leadbeater, David Mitchell, David Nicol, Dominic Hargreaves, E. Choroba, Eric Brine, Evan Miller, Father Chrysostomos, Florian Ragwitz, François Perrad, George Greer, Goro Fuji, H.Merijn Brand, Herbert Breunung, Hugo van der Sanden, Igor Zaytsev, James E Keenan, Jan Dubois, Jasmine Ahuja, Jerry D. Hedden, Jess Robinson, Jesse Luehrs, Joaquin Ferrero, Joel Berger, John Goodyear, John Peacock, Karen Etheridge, Karl Williamson, Karthik Rajagopalan, Kent Fredric, Leon Timmermans, Lucas Holt, Lukas Mai, Marcus Holland-Moritz, Markus Jansen, Martin Hasch, Matthew Horsfall, Max Maischein, Michael G Schwern, Michael Schroeder, Moritz Lenz, Nicholas Clark, Niko Tyni, Oleg Nesterov, Patrik Hägglund, Paul Green, Paul Johnson, Paul Marquess, Peter Martini, Rafael Garcia-Suarez, Reini Urban, Renee Baecker, Rhesa Rozendaal, Ricardo Signes, Robin Barker, Ronald J. Kimball, Ruslan Zakirov, Salvador Fandiño, Sawyer X, Scott Lanning, Sergey Alekseev, Shawn M Moore, Shirakata Kentaro, Shlomi Fish, Sisyphus, Smylers, Steffen Müller, Steve Hay, Steve Peters, Steven Schubiger, Sullivan Beck, Sven Strickroth, Sébastien Aperghis-Tramoni, Thomas Sibley, Tobias Leich, Tom Wyant, Tony Cook, Vadim Konovalov, Vincent Pit, Volker Schatz, Walt Mankowski, Yves Orton, Zefram. =begin original The list above is almost certainly incomplete as it is automatically generated from version control history. In particular, it does not include the names of the (very much appreciated) contributors who reported issues to the Perl bug tracker. =end original これはバージョンコントロール履歴から自動的に生成しているので、ほぼ確実に 不完全です。 特に、Perl バグトラッカーに問題を報告をしてくれた (とてもありがたい)貢献者の 名前を含んでいません。 =begin original Many of the changes included in this version originated in the CPAN modules included in Perl's core. We're grateful to the entire CPAN community for helping Perl to flourish. =end original このバージョンに含まれている変更の多くは、Perl コアに含まれている CPAN モジュール由来のものです。 私たちは Perl の発展を助けている CPAN コミュニティ全体に感謝します。 =begin original For a more complete list of all of Perl's historical contributors, please see the F file in the Perl source distribution. =end original 全ての Perl の歴史的な貢献者のより完全な一覧については、どうか Perl ソース 配布に含まれている F を参照してください。 =head1 Reporting Bugs (バグ報告) =begin original If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at http://rt.perl.org/perlbug/ . There may also be information at http://www.perl.org/ , the Perl Home Page. =end original もしバグと思われるものを見つけたら、comp.lang.perl.misc ニュースグループに 最近投稿された記事や http://rt.perl.org/perlbug/ にある perl バグ データベースを確認してください。 Perl ホームページ、http://www.perl.org/ にも情報があります。 =begin original If you believe you have an unreported bug, please run the L program included with your release. Be sure to trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of C, will be sent off to perlbug@perl.org to be analysed by the Perl porting team. =end original もしまだ報告されていないバグだと確信したら、そのリリースに含まれている L プログラムを実行してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。 バグレポートは C の出力と一緒に perlbug@perl.org に送られ Perl porting チームによって解析されます。 =begin original If the bug you are reporting has security implications, which make it inappropriate to send to a publicly archived mailing list, then please send it to perl5-security-report@perl.org. This points to a closed subscription unarchived mailing list, which includes all the core committers, who will be able to help assess the impact of issues, figure out a resolution, and help co-ordinate the release of patches to mitigate or fix the problem across all platforms on which Perl is supported. Please only use this address for security issues in the Perl core, not for modules independently distributed on CPAN. =end original もし報告しようとしているバグがセキュリティに関するもので、公開されている メーリングリストに送るのが不適切なものなら、 perl5-security-report@perl.org に送ってください。 このアドレスは、問題の影響を評価し、解決法を見つけ、Perl が対応している 全てのプラットフォームで問題を軽減または解決するパッチをリリースするのを 助けることが出来る、全てのコアコミッタが参加している非公開の メーリングリストになっています。 このアドレスは、独自に CPAN で配布されているモジュールではなく、 Perl コアのセキュリティ問題だけに使ってください。 =head1 SEE ALSO =begin original The F file for an explanation of how to view exhaustive details on what changed. =end original 変更点の完全な詳細を見る方法については F ファイル。 =begin original The F file for how to build Perl. =end original Perl のビルド方法については F ファイル。 =begin original The F file for general stuff. =end original 一般的なことについては F ファイル。 =begin original The F and F files for copyright information. =end original 著作権情報については F 及び F ファイル。 =begin meta Translate: SHIRAKATA Kentaro Status: completed =end meta =cut