=encoding utf8 =head1 NAME =begin original perl5120delta - what is new for perl v5.12.0 =end original perl5120delta - perl v5.12.0 での変更点 =head1 DESCRIPTION =begin original This document describes differences between the 5.10.0 release and the 5.12.0 release. =end original このドキュメントは 5.10.0 リリースと 5.12.0 リリースの変更点を記述しています。 =begin original Many of the bug fixes in 5.12.0 are already included in the 5.10.1 maintenance release. =end original 5.12.0 でのバグ修正の多くは既に 5.10.1 メンテナンスリリースに含まれています。 =begin original You can see the list of those changes in the 5.10.1 release notes (L). =end original これらの変更の一覧は 5.10.1 リリースノート (L) で 見られます。 =head1 Core Enhancements (コアの拡張) =head2 New C syntax (新しい C 文法) =begin original This new syntax allows a module author to set the $VERSION of a namespace when the namespace is declared with 'package'. It eliminates the need for C and similar constructs. E.g. =end original 名前空間が 'package' で宣言されるとき、モジュール作者が名前空間の $VERSION をセットするための新しい文法が使えるようになりました。 これによって、for C や似たような構造を取り除けます。 例えば、 package Foo::Bar 1.23; # $Foo::Bar::VERSION == 1.23 =begin original There are several advantages to this: =end original これにはいくつかの利点があります: =over =item * =begin original C<$VERSION> is parsed in exactly the same way as C =end original C<$VERSION> は C と全く同じようにパースされます =item * =begin original C<$VERSION> is set at compile time =end original C<$VERSION> はコンパイル時にセットされます =item * =begin original C<$VERSION> is a version object that provides proper overloading of comparison operators so comparing C<$VERSION> to decimal (1.23) or dotted-decimal (v1.2.3) version numbers works correctly. =end original C<$VERSION> は、比較演算子を適切にオーバーロードしたバージョン オブジェクトなので、C<$VERSION> と、数値形式 (1.23) や ドット区切り数値形式 (v1.2.3) のバージョン番号を正しく比較できます。 =item * =begin original Eliminates C<$VERSION = ...> and C clutter =end original C<$VERSION = ...> と C といった乱雑なものを除去します =item * =begin original As it requires VERSION to be a numeric literal or v-string literal, it can be statically parsed by toolchain modules without C the way MM-Eparse_version does for C<$VERSION = ...> =end original VERSION として数値リテラルかv-文字列リテラルが必要なので、 MM-Eparse_version が C<$VERSION = ...> に対して行っているような C なしに、ツールチェーンモジュールが静的にパースできます。 =back =begin original It does not break old code with only C, but code that uses C will need to be restricted to perl 5.12.0 or newer This is analogous to the change to C from two-args to three-args. Users requiring the latest Perl will benefit, and perhaps after several years, it will become a standard practice. =end original これは C とだけ書いてある古いコードは壊しませんが、 C を使っているコードは perl 5.12.0 以降では制限される 必要があります。 これは C の 2 引数から 3 引数への変更に似ています。 最新の Perl が必要なユーザーには利益があり、おそらく数年後には 標準的なプラクティスになっているでしょう。 =begin original However, C requires a new, 'strict' version number format. See L<"Version number formats"> for details. =end original しかし、C は新しい「厳密な」バージョン番号形式を 必要とします。 詳細については L<"Version number formats"> を参照してください。 =head2 The C<...> operator (C<...> 演算子) =begin original A new operator, C<...>, nicknamed the Yada Yada operator, has been added. It is intended to mark placeholder code that is not yet implemented. See L. =end original ヤダヤダ演算子というあだ名のある新しい演算子 C<...> が追加されました。 これはまだ実装していないコードのプレースホルダとしてマークすることを 目的としています。 L を参照してください。 =head2 Implicit strictures (暗黙の strict) =begin original Using the C syntax with a version number greater or equal to 5.11.0 will lexically enable strictures just like C would do (in addition to enabling features.) The following: =end original バージョン番号 5.11.0 以上を指定した C 文法を使うと、 (その他の機能が有効化されるのに追加して) ちょうど C と同様、レキシカルに strict が有効になります。 以下の表記は: use 5.12.0; =begin original means: =end original 以下を意味します: use strict; use feature ':5.12'; =head2 Unicode improvements (Unicode の改良) =begin original Perl 5.12 comes with Unicode 5.2, the latest version available to us at the time of release. This version of Unicode was released in October 2009. See L for further details about what's changed in this version of the standard. See L for instructions on installing and using other versions of Unicode. =end original Perl 5.12 は、リリース時点での最新版である Unicode 5.2 を同梱しています。 この版の Unicode は 2009 年 10 月にリリースされました。 この版の標準で変更されたものに関するさらなる詳細については L を参照してください。 他の版の Unicode をインストールして使うための方法については L を参照してください。 =begin original Additionally, Perl's developers have significantly improved Perl's Unicode implementation. For full details, see L below. =end original さらに、Perl の開発者は Perl の Unicode 実装を大きく改善しました。 完全な詳細については、後述する L を参照してください。 =head2 Y2038 compliance (2038 年問題準拠) =begin original Perl's core time-related functions are now Y2038 compliant. (It may not mean much to you, but your kids will love it!) =end original Perl コアの時刻関係の関数は 2038年問題準拠になりました。 (これはあなたにとっては余り意味のないことかもしれませんが、 あなたの子供はこれを喜ぶでしょう!) =head2 qr overloading (qr のオーバーロード) =begin original It is now possible to overload the C operator, that is, conversion to regexp, like it was already possible to overload conversion to boolean, string or number of objects. It is invoked when an object appears on the right hand side of the C<=~> operator or when it is interpolated into a regexp. See L. =end original C operator 演算子をオーバーロードできるようになりました; これは正規表現への変換で、既に可能であった真偽値、文字列、数値の オブジェクトへの変換と似たものです。 これは、オブジェクトが C<=~> 演算子の右側に現れたときか、 正規表現への変数展開が行われるときに起動します。 L を参照してください。 =head2 Pluggable keywords (プラグ可能なキーワード) =begin original Extension modules can now cleanly hook into the Perl parser to define new kinds of keyword-headed expression and compound statement. The syntax following the keyword is defined entirely by the extension. This allow a completely non-Perl sublanguage to be parsed inline, with the correct ops cleanly generated. =end original エクステンションモジュールは、キーワードが頭についた表現と複合文の 新種を定義するために、Perl のパーサーにきれいにフックを設定できます。 キーワードに引き続く文法は完全にエクステンションによって定義されます。 これにより、インラインでパースでき、正しい ops をきれいに生成できる、 完全に Perl とは違う副言語が可能になります。 =begin original See L for the mechanism. The Perl core source distribution also includes a new module L, which implements reverse Polish notation arithmetic via pluggable keywords. This module is mainly used for test purposes, and is not normally installed, but also serves as an example of how to use the new mechanism. =end original 仕組みについては L を参照してください。 Perl コアソース配布には、プラグ可能なキーワードを使って逆ポーランド記法を 実装した L という新しいモジュールも含んでいます。 このモジュールは主にテスト用に使われ、通常はインストールされませんが、 この仕組みの使い方の例となっています。 =begin original Perl's developers consider this feature to be experimental. We may remove it or change it in a backwards-incompatible way in Perl 5.14. =end original Perl の開発者はこの機能は実験的なものだと考えています。 Perl 5.14 では過去互換性の点から削除したり変更したりするかもしれません。 =head2 APIs for more internals (さらに内部のための API) =begin original The lowest layers of the lexer and parts of the pad system now have C APIs available to XS extensions. These are necessary to support proper use of pluggable keywords, but have other uses too. The new APIs are experimental, and only cover a small proportion of what would be necessary to take full advantage of the core's facilities in these areas. It is intended that the Perl 5.13 development cycle will see the addition of a full range of clean, supported interfaces. =end original 字句解析の最下位層とパッドシステムの一部が XS エクステンションから 利用可能な C API を持つようになりました。 これらはプラグ可能なキーワードの適切な使用を助けるために必要ですが、 他の使い方もあります。 新しい API は実験的で、これらの分野のコアの能力の利点を完全に 利用するために必要なもののうち小さな部分しか対応していません。 Perl 5.13 開発サイクルでクリーンで対応したインターフェースを完全に 追加することを目的としています。 =begin original Perl's developers consider this feature to be experimental. We may remove it or change it in a backwards-incompatible way in Perl 5.14. =end original Perl の開発者はこの機能は実験的なものだと考えています。 Perl 5.14 では過去互換性の点から削除したり変更したりするかもしれません。 =head2 Overridable function lookup (オーバーライド可能な関数検索) =begin original Where an extension module hooks the creation of rv2cv ops to modify the subroutine lookup process, this now works correctly for bareword subroutine calls. This means that prototypes on subroutines referenced this way will be processed correctly. (Previously bareword subroutine names were initially looked up, for parsing purposes, by an unhookable mechanism, so extensions could only properly influence subroutine names that appeared with an C<&> sigil.) =end original エクステンションモジュールがサブルーチン検索処理を修正するために rv2cv op の作成をフックした場合、 これは裸のサブルーチン呼び出しでも正しく動作するようになりました。 これは、この方法で参照されたサブルーチンのプロトタイプが正しく 処理されることを意味します。 (以前は、裸のサブルーチン名はフックできない機構を使ってパースのために 最初に検索されていたので、エクステンションは C<&> がついている サブルーチン名しか適切に影響を与えられませんでした。) =head2 A proper interface for pluggable Method Resolution Orders (プラグ可能なメソッド解決順序のための適切なインターフェース) =begin original As of Perl 5.12.0 there is a new interface for plugging and using method resolution orders other than the default linear depth first search. The C3 method resolution order added in 5.10.0 has been re-implemented as a plugin, without changing its Perl-space interface. See L for more information. =end original Perl 5.10.1 から、デフォルト (線形深さ優先検索) 以外のメソッド解決順序を 追加して使うための新しいインターフェースがあります。 5.10.0 で追加された C3 メソッド解決順序は、Perl 空間でのインターフェースの 変更なしにプラグインとして再実装されました。 さらなる情報については L を参照してください。 =head2 C<\N> experimental regex escape (実験的な正規表現エスケープ C<\N>) =begin original Perl now supports C<\N>, a new regex escape which you can think of as the inverse of C<\n>. It will match any character that is not a newline, independently from the presence or absence of the single line match modifier C. It is not usable within a character class. C<\N{3}> means to match 3 non-newlines; C<\N{5,}> means to match at least 5. C<\N{NAME}> still means the character or sequence named C, but C no longer can be things like C<3>, or C<5,>. =end original C<\n> の逆と考えられる新しい正規表現エスケープである C<\N> に 対応しました。 これは、単一行マッチング修飾子 C のあるなしに関わらず、 改行以外の任意の文字にマッチングします。 これは文字クラスの中では使えません。 C<\N{3}> は改行でない 3 文字にマッチングします; C<\N{5,}> は少なくとも 5 文字にマッチングします。 C<\N{NAME}> は未だ C という名前の文字またはシーケンスを意味しますが、 C として C<3> や C<5,> といったものは使えなくなりました。 =begin original This will break a L which allows numbers for character names, as C<\N{3}> will now mean to match 3 non-newline characters, and not the character whose name is C<3>. (No name defined by the Unicode standard is a number, so only custom translators might be affected.) =end original これは、文字名として数値も許していた L<カスタム文字名変換器|charnames/CUSTOM TRANSLATORS> を壊します; なぜなら C<\N{3}> は三つの非改行文字にマッチングし、C<3> という名前の 文字ではなくなるからです。 (Unicode 標準で定義されている名前には数字はありません; カスタム変換器のみが影響を受けます。) =begin original Perl's developers are somewhat concerned about possible user confusion with the existing C<\N{...}> construct which matches characters by their Unicode name. Consequently, this feature is experimental. We may remove it or change it in a backwards-incompatible way in Perl 5.14. =end original Perl の開発者は、ユーザーが、その Unicode 名の文字とマッチングする 既存の C<\N{...}> 構造と混乱することを懸念しています。 従って、この機能は実験的なものです。 Perl 5.14 では過去互換性の点から削除したり変更したりするかもしれません。 =head2 DTrace support (DTrace 対応) =begin original Perl now has some support for DTrace. See "DTrace support" in F. =end original DTrace へのいくらかの対応が追加されました。 F の "DTrace support" を参照してください。 =head2 Support for C in CPAN module metadata (CPAN モジュールメタデータの C への対応) =begin original Both C and C now support the C keyword in the F metadata file included in most recent CPAN distributions. This allows distribution authors to specify configuration prerequisites that must be installed before running F or F. =end original C と C は、ほとんどの最近の CPAN 配布が含んでいる メタデータファイル F の C キーワードに 対応しました。 これにより、F や F が実行される前に インストールされていなければならない設定の事前条件を指定できます。 =begin original See the documentation for C or C for more on how to specify C when creating a distribution for CPAN. =end original CPAN で配布するときに C を指定する方法については C か C の文書を参照してください。 =head2 C is now more flexible (C がより柔軟に) =begin original The C function can now operate on arrays. =end original C 関数は配列を操作できるようになりました。 =head2 C as a statement modifier (文修飾子としての C) =begin original C is now allowed to be used as a statement modifier. =end original C は文修飾子として使えるようになりました。 =head2 C<$,> flexibility (C<$,> の柔軟性) =begin original The variable C<$,> may now be tied. =end original C<$,> 変数を tie できるようになりました。 =head2 // in when clauses (when 句での //) =begin original // now behaves like || in when clauses =end original // は when 句では || のように振る舞うようになりました。 =head2 Enabling warnings from your shell environment (シェル環境から警告を有効にする) =begin original You can now set C<-W> from the C environment variable =end original C 環境変数で C<-W> をセットできるようになりました。 =head2 C (C) =begin original C now allows you to locally delete a hash entry. =end original C でハッシュエントリをローカルに削除できるようになりました。 =head2 New support for Abstract namespace sockets (抽象名前空間ソケットへの対応) =begin original Abstract namespace sockets are Linux-specific socket type that live in AF_UNIX family, slightly abusing it to be able to use arbitrary character arrays as addresses: They start with nul byte and are not terminated by nul byte, but with the length passed to the socket() system call. =end original 抽象名前空間ソケットは、AF_UNIX ファミリーにある Linux 固有のソケット型で、 任意の文字配列をアドレスとして使えるようにやや悪用されています: これは NUL バイトから始まって、NUL バイトでは終わりませんが、 socket() システムコールで渡される長さがあります。 =head2 32-bit limit on substr arguments removed (substr の引数の 32 ビット制限は取り除かれました) =begin original The 32-bit limit on C arguments has now been removed. The full range of the system's signed and unsigned integers is now available for the C and C arguments. =end original C の引数の 32 ビット制限は取り除かれました。 C 引数と C 引数として、 システムの符号付き整数および符号なし整数の幅全てを指定可能です。 =head1 Potentially Incompatible Changes (互換性がなくなる可能性のある変更) =head2 Deprecations warn by default (デフォルトでの非推奨の警告) =begin original Over the years, Perl's developers have deprecated a number of language features for a variety of reasons. Perl now defaults to issuing a warning if a deprecated language feature is used. Many of the deprecations Perl now warns you about have been deprecated for many years. You can find a list of what was deprecated in a given release of Perl in the C file for that release. =end original 長年をかけて、Perl の開発者は多くの言語機能を様々な理由で非推奨に してきました。 Perl は、非推奨の言語機能が使われると警告を出すのがデフォルトになりました。 Perl が警告するようになった非推奨の多くは何年間も非推奨となっています。 Perl のあるリリースで何が非推奨かの一覧はそのリリースの C ファイルにあります。 =begin original To disable this feature in a given lexical scope, you should use C For information about which language features are deprecated and explanations of various deprecation warnings, please see L. See L below for the list of features and modules Perl's developers have deprecated as part of this release. =end original レキシカルスコープでこの機能を無効にするには、 C を使ってください。 どの言語機能が非推奨であるかと、様々な非推奨警告の説明については、 L を参照してください。 Perl の開発者がこのリリースで非推奨とした機能とモジュールの一覧は 以下の L を参照してください。 =head2 Version number formats (バージョン番号形式) =begin original Acceptable version number formats have been formalized into "strict" and "lax" rules. C takes a strict version number. C and the L object constructors take lax version numbers. Providing an invalid version will result in a fatal error. The version argument in C is first parsed as a numeric literal or v-string and then passed to C (and must then pass the "lax" format test). =end original 受け付けられるバージョン番号形式は、「厳密な」形式と「曖昧な」形式で 形式化されました。 C は厳密なバージョン番号を取ります。 C と L オブジェクトコンストラクタは 曖昧なバージョン番号を取ります。 バージョンが不正な場合、致命的エラーになります。 C のバージョン引数はまず数値リテラルかv-文字列として パースされ、それから C に渡されます (そして「曖昧な」形式テストを通過する必要があります)。 =begin original These formats are documented fully in the L module. To a first approximation, a "strict" version number is a positive decimal number (integer or decimal-fraction) without exponentiation or else a dotted-decimal v-string with a leading 'v' character and at least three components. A "lax" version number allows v-strings with fewer than three components or without a leading 'v'. Under "lax" rules, both decimal and dotted-decimal versions may have a trailing "alpha" component separated by an underscore character after a fractional or dotted-decimal component. =end original これらの形式は L に完全に文書化されています。 最初の仮定として「厳密な」バージョン番号は指数部のない正の 10 進数 (整数か 10 進小数) か、あるいは先頭に 'v' の文字がついたドット付き 10 進数整数v-文字列で、少なくとも3 要素があるものです。 「曖昧な」バージョン番号は、要素数が 2 以下であったり、先頭に 'v' が ないものも許します。 「曖昧な」規則の下では、10 進数とドット付き 10 進数のバージョンは、 小数かドット付き要素の後に下線で区切られた「英字」要素を 付けることができます。 =begin original The L module adds C and C functions to check a scalar against these rules. =end original L モジュールには、スカラがこれらの形式に従っているかを チェックするための C 関数と C 関数が 追加されました。 =head2 @INC reorganization (@INC の再構成) =begin original In C<@INC>, C and C now occur after after the current version's C and C. Modules installed into C and C will now be loaded in preference to those installed in C and C. =end original C<@INC> の中で、C と C は現在のバージョンの C および C の後に現れるようになりました。 C と C にインストールされたモジュールは、 C や C にインストールされたものより優先して 読み込まれます。 =head2 REGEXPs are now first class (REGEXP は第一級になりました) =begin original Internally, Perl now treates compiled regular expressions (such as those created with C) as first class entities. Perl modules which serialize, deserialize or otherwise have deep interaction with Perl's internal data structures need to be updated for this change. Most affected CPAN modules have already been updated as of this writing. =end original 内部では、Perl は(C で作成されたような)コンパイルされた正規表現を を第一級実体として扱います。 Perl の内部データ構造を直列化、非直列化するなどの深い相互作用を 行うモジュールは、この変更に対応するために更新する必要があります。 影響の受ける CPAN モジュールのほとんどは、これを書いている時点で 既に更新されています。 =head2 Switch statement changes (switch 文の変更) =begin original The C/C switch statement handles complex statements better than Perl 5.10.0 did (These enhancements are also available in 5.10.1 and subsequent 5.10 releases.) There are two new cases where C now interprets its argument as a boolean, instead of an expression to be used in a smart match: =end original C/C の switch 文は、Perl 5.10.0 で扱えたものよりも もっと複雑な文を扱えるようになりました (これらの拡張は 5.10.1 および引き続く 5.10 リリースでも利用可能です。) 新しく、C がスマートマッチングの式ではなく真偽値として 引数を解釈する場合が二つあります。 =over =item flip-flop operators (フリップフロップ演算子) =begin original The C<..> and C<...> flip-flop operators are now evaluated in boolean context, following their usual semantics; see L. =end original C<..> と C<...> のフリップフロップ演算子は、通常の文法に従ってブール値 コンテキストで評価されるようになりました。 L を参照してください。 =begin original Note that, as in perl 5.10.0, C will not work to test whether a given value is an integer between 1 and 10; you should use C instead (note the array reference). =end original perl 5.10.0 では、C としても、与えられた値が 1 から 10 の間の 数値かどうかをテストするようには動作しないことに注意してください; 代わりに C を使うべきです (配列リファレンスに 注意してください)。 =begin original However, contrary to 5.10.0, evaluating the flip-flop operators in boolean context ensures it can now be useful in a C, notably for implementing bistable conditions, like in: =end original しかし、5.10.0 とは反対に、C でブール値コンテキストで フリップフロップ演算子が評価されることが保証されることで、 特に以下のように双安定条件を実装するときに便利です: when (/^=begin/ .. /^=end/) { # do something } =item defined-or operator (定義性和 (defined-or) 演算子) =begin original A compound expression involving the defined-or operator, as in C, will be treated as boolean if the first expression is boolean. (This just extends the existing rule that applies to the regular or operator, as in C.) =end original C のような、定義性和 (defined-or) を含む複合式は、 最初の式が真偽値なら真偽値として扱われます。 (これは単に、C のような通常の or 演算子に 適用されるすでにあるルールの拡張です。 =back =head2 Smart match changes (スマートマッチングの変更) =begin original Since Perl 5.10.0, Perl's developers have made a number of changes to the smart match operator. These, of course, also alter the behaviour of the switch statements where smart matching is implicitly used. These changes were also made for the 5.10.1 release, and will remain in subsequent 5.10 releases. =end original Perl 5.10.0 から、Perl の開発者はスマートマッチング演算子に多くの変更を 行いました。 これらは、当然ながら暗黙にスマートマッチングを使っている switch 文の 振る舞いも変えます。 これらの変更は 5.10.1 にも適用され、引き続く 5.10 リリースにも残る予定です。 =head3 Changes to type-based dispatch (型ベースの発行(dispatch)への変更) =begin original The smart match operator C<~~> is no longer commutative. The behaviour of a smart match now depends primarily on the type of its right hand argument. Moreover, its semantics have been adjusted for greater consistency or usefulness in several cases. While the general backwards compatibility is maintained, several changes must be noted: =end original スマートマッチング演算子 C<~~> はもはや可換性を持ちません。 スマートマッチングの振る舞いは、まず右側の引数の型に依存します。 さらに、その文法は一貫性と有用性をより高めるために調整されました。 一般的な後方互換性は維持されている一方、いくつかの変更点には 注意しなければなりません: =over 4 =item * =begin original Code references with an empty prototype are no longer treated specially. They are passed an argument like the other code references (even if they choose to ignore it). =end original 空のプロトタイプを持つコードリファレンスは特別扱いされなくなりました。 (たとえ無視されることになるとしても)これらはその他のコードリファレンスと同様に 引数として渡されます。 =item * =begin original C<%hash ~~ sub {}> and C<@array ~~ sub {}> now test that the subroutine returns a true value for each key of the hash (or element of the array), instead of passing the whole hash or array as a reference to the subroutine. =end original C<%hash ~~ sub {}> と C<@array ~~ sub {}> は、 ハッシュや配列全体をリファレンスとしてサブルーチンに渡すのではなく、 ハッシュのそれぞれのキー(または配列の要素)に対してサブルーチンが 真を返すかどうかをテストするようになりました。 =item * =begin original Due to the commutativity breakage, code references are no longer treated specially when appearing on the left of the C<~~> operator, but like any vulgar scalar. =end original 可換性の破綻により、コードリファレンスは C<~~> 演算子の左側に 現れたときにはもはや特別扱いされず、普通のスカラと同じように扱われます。 =item * =begin original C is always false (since C can't be a key in a hash). No implicit conversion to C<""> is done (as was the case in perl 5.10.0). =end original C は常に偽となります (なぜなら C はハッシュのキーとして 使えないからです)。 (perl 5.10.0 の場合のように)C<""> への暗黙の変換は行われません。 =item * =begin original C<$scalar ~~ @array> now always distributes the smart match across the elements of the array. It's true if one element in @array verifies C<$scalar ~~ $element>. This is a generalization of the old behaviour that tested whether the array contained the scalar. =end original C<$scalar ~~ @array> は常に配列の要素に対してスマートマッチングを 分配するようになりました。 これは、もし @array の一つの要素が C<$scalar ~~ $element> で検証されれば 真となります。 これは、配列にあるスカラが含まれているかどうかをテストする古い振る舞いの 一般化です。 =back =begin original The full dispatch table for the smart match operator is given in L. =end original スマートマッチング演算子に関する完全な発行テーブルは L にあります。 =head3 Smart match and overloading (スマートマッチングとオーバーロード) =begin original According to the rule of dispatch based on the rightmost argument type, when an object overloading C<~~> appears on the right side of the operator, the overload routine will always be called (with a 3rd argument set to a true value, see L.) However, when the object will appear on the left, the overload routine will be called only when the rightmost argument is a simple scalar. This way, distributivity of smart match across arrays is not broken, as well as the other behaviours with complex types (coderefs, hashes, regexes). Thus, writers of overloading routines for smart match mostly need to worry only with comparing against a scalar, and possibly with stringification overloading; the other common cases will be automatically handled consistently. =end original 一番右の引数の型に依存するという発行ルールによれば、 演算子の右側にオブジェクトのオーバーロード C<~~> が現れたとき、 オーバーロードルーチンは(3 番目の引数に真の値を設定して; L を 参照してください) 常に呼び出されます。 しかし、オブジェクトが左側に現れたとき、オーバーロードルーチンは 一番右の引数が単純なスカラの場合にのみ呼び出されます。 これによって配列に対するスマートマッチングの分配性や 複合型(コードリファレンス、ハッシュ、正規表現)に対するその他の振る舞いは 壊れません。 従って、スマートマッチングのためのローバーロードルーチンの作者は ほとんどの場合、スカラの比較と、可能性があるなら文字列化のオーバーロードに 関してのみ心配する必要があります; その他の一般的な場合は 一貫性を持って自動的に扱われます。 =begin original C<~~> will now refuse to work on objects that do not overload it (in order to avoid relying on the object's underlying structure). (However, if the object overloads the stringification or the numification operators, and if overload fallback is active, it will be used instead, as usual.) =end original C<~~> は、オーバーロードしていないオブジェクトに対して動作しなくなりました (オブジェクトの基礎となる構造に依存することを避けるためです)。 しかし、オブジェクトが文字列化か数値化演算子をオーバーロードしていて、 オーバーロードのフォールバックが有効の場合は、通常通りに使われます。) =head2 Other potentially incompatible changes (その他の互換性のなくなる可能性のある変更) =over 4 =item * =begin original The definitions of a number of Unicode properties have changed to match those of the current Unicode standard. These are listed above under L. This change may break code that expects the old definitions. =end original 多くの Unicode 特性の定義が、現在の Unicode 標準に合わせる形で 変更されました。 上述の L に一覧があります。 この変更によって、古い定義を想定しているコードは動かなくなるかもしれません。 =item * =begin original The boolkeys op has moved to the group of hash ops. This breaks binary compatibility. =end original boolkeys op は hash op のグループに移動しました。 これはバイナリ互換性を壊します。 =item * =begin original Filehandles are now always blessed into C. =end original ファイルハンドルは常に C に bless されるようになります。 =begin original The previous behaviour was to bless Filehandles into L (an empty proxy class) if it was loaded into memory and otherwise to bless them into C. =end original 以前の振る舞いは、ファイルハンドルがメモリに読み込まれたときには L (空の代理クラス) に bless され、さもなければ C に bless されていました。 =item * =begin original The semantics of C have changed slightly. See L<"Modules and Pragmata"> for more information. =end original C の文法が少し変更されました。 さらなる情報については L<"Modules and Pragmata"> を参照してください。 =item * =begin original Perl's developers now use git, rather than Perforce. This should be a purely internal change only relevant to people actively working on the core. However, you may see minor difference in perl as a consequence of the change. For example in some of details of the output of C. See L for more information. =end original Perl 開発者は Perforce ではく git を使うようになりました。 これは活発にコアで作業する人々にとってのみ影響がある、純粋に内部の 変更のはずです。 しかし、変更の結果として、perl にも多少の変更が見られます。 例えば、C の出力の詳細の一部です。 さらなる情報については L を参照してください。 =item * =begin original As part of the C 2.x to 3.x upgrade, the experimental C module has been removed. See L for more details. =end original C 2.x から 3.x へのアップグレードへの一部として、 実験的な C モジュールは取り除かれました。 さらなる詳細については L を参照してください。 =item * =begin original As part of the C upgrade, the C and C modules have been removed from this distribution. =end original C のアップグレードの一部として、 C と C の モジュールはこの配布から取り除かれました。 =item * =begin original C no longer contains the C<%:patchlevel> hash. =end original C はもはや C<%:patchlevel> ハッシュを含まなくなりました。 =item * =begin original C now returns undef. =end original C は undef を返すようになりました。 =item * =begin original Unsupported private C API functions are now declared "static" to prevent leakage to Perl's public API. =end original 非対応のプライベートな C API 関数は、Perl のパブリック API への 漏洩を防ぐために、"static" で宣言されるようになりました。 =item * =begin original To support the bootstrapping process, F no longer builds with UTF-8 support in the regexp engine. =end original ブートストラップ処理に対応するために、F は正規表現エンジンで UTF-8 対応なしでビルドされるようになりました。 =begin original This allows a build to complete with PERL_UNICODE set and a UTF-8 locale. Without this there's a bootstrapping problem, as miniperl can't load the UTF-8 components of the regexp engine, because they're not yet built. =end original これにより、PERL_UNICODE をセットして、UTF-8 ロケールでビルドが 完了するようになりました。 これなしではブートストラップに問題があり、まだビルドされていないので、 正規表現エンジンの UTF-8 コンポーネントを読み込めませんでした。 =item * =begin original F's @INC is now restricted to just C<-I...>, the split of C<$ENV{PERL5LIB}>, and "C<.>" =end original F の @INC は C<-I...> のみに制限され、C<$ENV{PERL5LIB}> と "C<.>" は切り離されました。 =item * =begin original A space or a newline is now required after a C<"#line XXX"> directive. =end original C<"#line XXX"> 指示子の後に空白か改行が必要になりました。 =item * =begin original Tied filehandles now have an additional method EOF which provides the EOF type. =end original tie されたファイルハンドルに、EOF の種類を提供するメソッド EOF が 追加されました。 =item * =begin original To better match all other flow control statements, C may no longer be used as an attribute. =end original その他全てのフロー制御文とよりよく一致させるために、 C は属性として使われなくなりました。 =item * =begin original Perl's command-line switch "-P", which was deprecated in version 5.10.0, has now been removed. =end original 5.10.0 で非推奨となった Perl のコマンドラインオプション "-P" が 削除されました。 =back =head1 Deprecations (非推奨) =begin original From time to time, Perl's developers find it necessary to deprecate features or modules we've previously shipped as part of the core distribution. We are well aware of the pain and frustration that a backwards-incompatible change to Perl can cause for developers building or maintaining software in Perl. You can be sure that when we deprecate a functionality or syntax, it isn't a choice we make lightly. Sometimes, we choose to deprecate functionality or syntax because it was found to be poorly designed or implemented. Sometimes, this is because they're holding back other features or causing performance problems. Sometimes, the reasons are more complex. Wherever possible, we try to keep deprecated functionality available to developers in its previous form for at least one major release. So long as a deprecated feature isn't actively disrupting our ability to maintain and extend Perl, we'll try to leave it in place as long as possible. =end original 時々、Perl の開発者は、以前コア配布の一部として出荷した機能やモジュールを 非推奨とする必要があることに気付きます。 私たちは、Perl に過去互換性のない変更をすることで Perl のソフトウェアを ビルドしたり保守したりする開発者に引き起こす苦痛といらだちについて よくわかっています。 私たちがある機能や文法を非推奨にしたとき、それは簡単な 選択ではなかったということは間違いありません。 時には、ある機能や文法が、設計や実装がまずいことを発見して非推奨に することを選択します。 時には、他の機能に差し支えたり、性能上の問題を引き起こすのが理由です。 時には、理由はもっと複雑です。 可能であるなら、私たちは少なくとも 1 メジャーリリースの間 非推奨の機能を以前の形で開発者に利用可能なままにしています。 非推奨の機能が Perl を管理・拡張する私たちの能力を大きく 混乱させないうちは、私たちは機能を出来るだけ長くそのままにしようと しています。 =begin original The following items are now deprecated: =end original 以下のものは非推奨となりました: =over =item suidperl =begin original C is no longer part of Perl. It used to provide a mechanism to emulate setuid permission bits on systems that don't support it properly. =end original C はもはや Perl の一部ではありません。 これは setuid 許可ビットを正しく扱えないシステムで、これを エミュレートする機構を提供していました。 =item Use of C<:=> to mean an empty attribute list =begin original An accident of Perl's parser meant that these constructions were all equivalent: =end original 事故により、Perl のパーサーは以下の構造が全て等価になってしまっていました: my $pi := 4; my $pi : = 4; my $pi : = 4; =begin original with the C<:> being treated as the start of an attribute list, which ends before the C<=>. As whitespace is not significant here, all are parsed as an empty attribute list, hence all the above are equivalent to, and better written as =end original C<:> は、C<=> で終わるまでの属性として扱われました。 ここでは空白は意味を持たないので、全ては空属性リストとしてパースされ、 従って上記は全て等価となるので、以下のように書いた方がよいです my $pi = 4; =begin original because no attribute processing is done for an empty list. =end original なぜなら空リストには属性処理は行われないからです。 =begin original As is, this meant that C<:=> cannot be used as a new token, without silently changing the meaning of existing code. Hence that particular form is now deprecated, and will become a syntax error. If it is absolutely necessary to have empty attribute lists (for example, because of a code generator) then avoid the warning by adding a space before the C<=>. =end original 今のままでは、これは、既にあるコードの意味を暗黙に変更しなければ、 C<:=> を新しいトークンとして使えないことを意味します。 従って、特定の形式は非推奨となり、将来文法エラーとなる予定です。 (例えば、コードジェネレータによって)本当に空属性リストが必要な場合は、 C<=> の前に空白を追加することによって警告を回避してください。 =item C<< UNIVERSAL->import() >> =begin original The method C<< UNIVERSAL->import() >> is now deprecated. Attempting to pass import arguments to a C statement will result in a deprecation warning. =end original C<< UNIVERSAL->import() >> メソッドは非推奨となりました。 インポート引数を C 文に渡そうとすると非推奨警告が出ます。 =item Use of "goto" to jump into a construct =begin original Using C to jump from an outer scope into an inner scope is now deprecated. This rare use case was causing problems in the implementation of scopes. =end original C を外側のスコープから内側のスコープへジャンプするために使うのは 非推奨となりました。 この希なユースケースはスコープの実装に問題を引き起こします。 =item Custom character names in \N{name} that don't look like names =begin original In C<\N{I}>, I can be just about anything. The standard Unicode names have a very limited domain, but a custom name translator could create names that are, for example, made up entirely of punctuation symbols. It is now deprecated to make names that don't begin with an alphabetic character, and aren't alphanumeric or contain other than a very few other characters, namely spaces, dashes, parentheses and colons. Because of the added meaning of C<\N> (See L experimental regex escape>), names that look like curly brace -enclosed quantifiers won't work. For example, C<\N{3,4}> now means to match 3 to 4 non-newlines; before a custom name C<3,4> could have been created. =end original C<\N{I}> において、I は何でも構いません。 標準の Unicode 名はとても制限された範囲になっていますが、 カスタム名変換器は、例えば、句読点だけからなるシンボルを作ることができます。 英字で始まらない名前や、英数字とその他の数文字(空白、ダッシュ、かっこ、 コロン)以外の文字を含む名前は非推奨となりました。 C<\N> の意味が追加された(L experimental regex escape> を 参照してください)ので、中かっこでくくられた量指定子のように見える 名前は動作しません。 例えば、C<\N{3,4}> は 3 から 4 文字の非改行文字にマッチングします; 以前はカスタム名 C<3,4> が作成されていました。 =item Deprecated Modules (非推奨モジュール) =begin original The following modules will be removed from the core distribution in a future release, and should be installed from CPAN instead. Distributions on CPAN which require these should add them to their prerequisites. The core versions of these modules warnings will issue a deprecation warning. =end original 以下のモジュールは将来のリリースではコア配布からは取り除かれ、 代わりに CPAN からインストールするようになります。 CPAN での配布物のでこれらのモジュールが必要な場合は、事前条件に追加する 必要があります。 これらのモジュールのコア版は、非推奨警告を発生させます。 =begin original If you ship a packaged version of Perl, either alone or as part of a larger system, then you should carefully consider the reprecussions of core module deprecations. You may want to consider shipping your default build of Perl with packages for some or all deprecated modules which install into C or C perl library directories. This will inhibit the deprecation warnings. =end original 単独、あるいはより大きいシステムの一部として、パッケージ版の Perl を 出荷する場合、非推奨のコアモジュールの影響を注意深く検討するべきです。 いくつか、あるいは全ての非推奨モジュールを perl ライブラリディレクトリ C か C にインストールして Perl のデフォルトビルドを 出荷したいかもしれません。 これは非推奨警告を抑制します。 =begin original Alternatively, you may want to consider patching F to provide deprecation warnings specific to your packaging system or distribution of Perl, consistent with how your packaging system or distribution manages a staged transition from a release where the installation of a single package provides the given functionality, to a later release where the system administrator needs to know to install multiple packages to get that same functionality. =end original あるいは、F にパッチを当てて、 あなたのパッケージシステムや配布が、単一のパッケージのインストールがある 機能を提供するリリースから、同じ機能を得るために複数のパッケージを インストールすることをシステム管理者が知る必要があるより新しいリリースへの 段階的な移行する方法と一貫した、あなたのパッケージシステムや Perl の配布に固有の警告メッセージを提供したいかもしれません。 =begin original You can silence these deprecation warnings by installing the modules in question from CPAN. To install the latest version of all of them, just install C. =end original モジュールを CPAN からインストールすることによって、非推奨警告を 消すことができます。 これら全ての最新版をインストールするには、単に C をインストールしてください。 =over =item L =item L =item L =item L =begin original Switch is buggy and should be avoided. You may find Perl's new C/C feature a suitable replacement. See L for more information. =end original C はバグが多いので避けるべきです。 Perl の新しい C/C 機能が適切な代替品です。 さらなる情報については L を 参照してください。 =back =item Assignment to $[ ($[ への代入) =item Use of the attribute :locked on subroutines (サブルーチンへの :locked 属性の使用) =item Use of "locked" with the attributes pragma (attributes プラグマでの "locked" の使用) =item Use of "unique" with the attributes pragma (attributes プラグマでの "unique" の使用) =item Perl_pmflag =begin original C is no longer part of Perl's public API. Calling it now generates a deprecation warning, and it will be removed in a future release. Although listed as part of the API, it was never documented, and only ever used in F, and prior to 5.10, F. In core, it has been replaced by a static function. =end original C はもはや Perl の公開 API ではありません。 これを呼び出すと非推奨警告が生成され、これは将来のリリースで 取り除かれます。 API の一覧には載っていましたが、文書化されたことはなく、 F と、5.10 以前での F でのみ使われていました。 コアでは、これは static 版に置き換えられました。 =item Numerous Perl 4-era libraries (大量の Perl 4 時代のライブラリ) =begin original F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, and F are all now deprecated. Earlier, Perl's developers intended to remove these libraries from Perl's core for the 5.14.0 release. =end original F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F は全て非推奨となりました。 以前、Perl の開発者は 5.14.0 リリースでこれらのライブラリを Perl コアから 削除しようとしていました。 =begin original During final testing before the release of 5.12.0, several developers discovered current production code using these ancient libraries, some inside the Perl core itself. Accordingly, the pumpking granted them a stay of execution. They will begin to warn about their deprecation in the 5.14.0 release and will be removed in the 5.16.0 release. =end original 5.12.0 リリース前の最終テスト中に、複数の開発者が現在の製品コードがこれらの 古いライブラリを使っていることを発見しました; その一部は Perl コア 自身の中にありました。 それで、パンプキングはこれらのライブラリの処刑を猶予しました。 これらは 5.14.0 リリースから非推奨警告が出るようになり、 5.16.0 リリースで削除される予定です。 =back =head1 Unicode overhaul (Unicode のオーバーホール) =begin original Perl's developers have made a concerted effort to update Perl to be in sync with the latest Unicode standard. Changes for this include: =end original Perl の開発者は、Perl を最新の Unicode 標準と同期するように更新することに 断固とした努力を行っています。 これに関する変更には以下のものを含みます: =begin original Perl can now handle every Unicode character property. New documentation, L, lists all available non-Unihan character properties. By default, perl does not expose Unihan, deprecated or Unicode-internal properties. See below for more details on these; there is also a section in the pod listing them, and explaining why they are not exposed. =end original Perl は全ての Unicode 文字特性を扱えるようになりました。 新しい文書である L には全ての利用可能な非 Unihan 文字特性の 一覧があります。 デフォルトでは、perl は Unihan、非推奨、Unicode 内部の特性を公開しません。 これらに関するさらなる詳細については以下を参照してください; pod にもこれらの一覧があり、なぜ公開しないのかの説明もあります。 =begin original Perl now fully supports the Unicode compound-style of using C<=> and C<:> in writing regular expressions: C<\p{property=value}> and C<\p{property:value}> (both of which mean the same thing). =end original 正規表現を書くときに C<=> と C<:> を使った複合型 Unicode に完全に 対応するようになりました: C<\p{property=value}> と C<\p{property:value}> です (これらはどちらも同じ意味です)。 =begin original Perl now fully supports the Unicode loose matching rules for text between the braces in C<\p{...}> constructs. In addition, Perl allows underscores between digits of numbers. =end original Unicode のC<\p{...}> 構造で、中かっこの間のテキストでの ゆるいマッチングルールに完全に対応しました。 さらに、数値の数字の間に下線を許すようになりました。 =begin original Perl now accepts all the Unicode-defined synonyms for properties and property values. =end original Perl は Unicode で定義された、特性への別名と特性値全てを 受け付けるようになりました。 =begin original C, which matches a Unicode logical character, has been expanded to work better with various Asian languages. It now is defined as an I. (See L). Anything matched previously and that made sense will continue to be accepted. Additionally: =end original Unicode 論理文字にマッチングする C は、様々なアジア言語で よりよく働くように拡張されました。 これは I<拡張書記素クラスタ> として定義されます。 (L を参照してください)。 以前からマッチングしていたものは引き続きマッチングします。 さらに: =over =item * =begin original C<\X> will not break apart a C> sequence. =end original C<\X> は C> シーケンスに分割されません。 =item * =begin original C<\X> will now match a sequence which includes the C and C characters. =end original C<\X> は、C と C の文字を含むシーケンスにも マッチングするようになりました。 =item * =begin original C<\X> will now always match at least one character, including an initial mark. Marks generally come after a base character, but it is possible in Unicode to have them in isolation, and C<\X> will now handle that case, for example at the beginning of a line, or after a C. And this is the part where C<\X> doesn't match the things that it used to that don't make sense. Formerly, for example, you could have the nonsensical case of an accented LF. =end original C<\X> は常に、最初のマークを含む、最低 1 文字とマッチングするように なりました。 マークは一般的には規定文字の後に現れますが、Unicode ではこれらを 単独で使うことも可能で、C<\X> はこのような場合、つまり行頭や、 C の後のような場合でも正しく扱えるようになりました。 これは、C<\X> が無意味なものにマッチングしなくなったことの 一部です。 以前は、例えば、アクセント付きの LF という無意味な場合がありました。 =item * =begin original C<\X> will now match a (Korean) Hangul syllable sequence, and the Thai and Lao exception cases. =end original C<\X> はハングル音節文字と、タイとラオスの例外ケースに マッチングするようになりました。 =back =begin original Otherwise, this change should be transparent for the non-affected languages. =end original それ以外では、この変更は影響を与えない言語では透過的です。 =begin original C<\p{...}> matches using the Canonical_Combining_Class property were completely broken in previous releases of Perl. They should now work correctly. =end original Canonical_Combining_Class 特性を使った C<\p{...}> マッチングは 以前にリリースされた Perl では完全に壊れていました。 これらは正しく動作するようになったはずです。 =begin original Before Perl 5.12, the Unicode C property and a Perl extension had the same name, which led to neither matching all the correct values (with more than 100 mistakes in one, and several thousand in the other). The Perl extension has now been renamed to be C (short: C). It has the same meaning as was previously intended, namely the union of all the non-canonical Decomposition types, with Unicode C being just one of those. =end original Perl 5.12 より前では、Unicode の C 特性と Perl のエクステンションが同じ名前を持っていて、全ての正しい値には マッチングしなくなっていました(100 以上間違えたり、数千間違えたりします)。 Perl のエクステンションの名前は C (短縮形: C) に変更されました。 これは以前想定していたものと同じ意味を持ちます; つまり全ての 非正準分解型の和集合です; そして Unicode の C は単にその一部です。 =begin original C<\p{Decomposition_Type=Canonical}> now includes the Hangul syllables. =end original C<\p{Decomposition_Type=Canonical}> はハングル音節文字を 含むようになりました。 =begin original C<\p{Uppercase}> and C<\p{Lowercase}> now work as the Unicode standard says they should. This means they each match a few more characters than they used to. =end original C<\p{Uppercase}> と C<\p{Lowercase}> は、Unicode 標準がそうするべきと している通りに動作するようになりました。 これは、今までよりもマッチングする文字が数文字多くなることを意味します。 =begin original C<\p{Cntrl}> now matches the same characters as C<\p{Control}>. This means it no longer will match Private Use (gc=co), Surrogates (gc=cs), nor Format (gc=cf) code points. The Format code points represent the biggest possible problem. All but 36 of them are either officially deprecated or strongly discouraged from being used. Of those 36, likely the most widely used are the soft hyphen (U+00AD), and BOM, ZWSP, ZWNJ, WJ, and similar characters, plus bidirectional controls. =end original C<\p{Cntrl}> は C<\p{Control}> と同じ文字にマッチングするようになりました。 これは、もはや Private Use (gc=co), Surrogates (gc=cs), Format (gc=cf) 符号位置とマッチングしないことを意味します。 Format 符号位置は最大の可能性がある問題を意味します。 これらのうち、36 以外のものは公式に非推奨か、使用は全く お勧めできません。 もっとも広く使われているらしい 36 は、ソフトハイフン (U+00AD), BOM, ZWSP, ZWNJ, WJ 及び同様の文字、さらに双方向制御です。 =begin original C<\p{Alpha}> now matches the same characters as C<\p{Alphabetic}>. Before 5.12, Perl's definition definition included a number of things that aren't really alpha (all marks) while omitting many that were. The definitions of C<\p{Alnum}> and C<\p{Word}> depend on Alpha's definition and have changed accordingly. =end original C<\p{Alpha}> は C<\p{Alphabetic}> と同じ文字に マッチングするようになりました。 5.12 より前では、Perl での定義には実際には Alpha (全てのマーク) ではない 多くのものを含んでいる一方、Alpha である多くのものが除外されていました。 C<\p{Alnum}> と C<\p{Word}> の定義は Alpha の定義に依存していて、 同様に変更されました。 =begin original C<\p{Word}> no longer incorrectly matches non-word characters such as fractions. =end original C<\p{Word}> は、間違って分数のような非単語文字とマッチングしていましたが、 しなくなりました。 =begin original C<\p{Print}> no longer matches the line control characters: Tab, LF, CR, FF, VT, and NEL. This brings it in line with standards and the documentation. =end original C<\p{Print}> は、もはや行制御文字 (Tab, LF, CR, FF, VT, NEL) と マッチングしなくなりました。 これにより標準と文書が一致します。 =begin original C<\p{XDigit}> now matches the same characters as C<\p{Hex_Digit}>. This means that in addition to the characters it currently matches, C<[A-Fa-f0-9]>, it will also match the 22 fullwidth equivalents, for example U+FF10: FULLWIDTH DIGIT ZERO. =end original C<\p{XDigit}> は C<\p{Hex_Digit}> と同じ文字に マッチングするようになりました。 これは、今マッチングしている文字 C<[A-Fa-f0-9]> に追加して、 U+FF10: FULLWIDTH DIGIT ZERO のような、22 個の等価な全角文字にも マッチングするようになりました。 =begin original The Numeric type property has been extended to include the Unihan characters. =end original 数値特性は、Unihan 文字を含むように拡張されました。 =begin original There is a new Perl extension, the 'Present_In', or simply 'In', property. This is an extension of the Unicode Age property, but C<\p{In=5.0}> matches any code point whose usage has been determined I Unicode version 5.0. The C<\p{Age=5.0}> only matches code points added in I version 5.0. =end original Perl の新しい拡張として 'Present_In' あるいは単に 'In' という特性があります。 これは Unicode Age 特性の拡張ですが、C<\p{In=5.0}> は Unicode バージョン 5.0 I<現在で> 使い方が決定されているあらゆる符号位置に マッチングします。 C<\p{Age=5.0}> は I<まさに> バージョン 5.0 で追加された符号位置にのみ マッチングします。 =begin original A number of properties now have the correct values for unassigned code points. The affected properties are Bidi_Class, East_Asian_Width, Joining_Type, Decomposition_Type, Hangul_Syllable_Type, Numeric_Type, and Line_Break. =end original 多くの特性が、割り当てられていない符号位置に対して正しい値を 持つようになりました。 影響のある特性は Bidi_Class, East_Asian_Width, Joining_Type, Decomposition_Type, Hangul_Syllable_Type, Numeric_Type, Line_Break です。 =begin original The Default_Ignorable_Code_Point, ID_Continue, and ID_Start properties are now up to date with current Unicode definitions. =end original Default_Ignorable_Code_Point, ID_Continue, ID_Start 特性は現在の Unicode 定義に更新されました。 =begin original Earlier versions of Perl erroneously exposed certain properties that are supposed to be Unicode internal-only. Use of these in regular expressions will now generate, if enabled, a deprecation warning message. The properties are: Other_Alphabetic, Other_Default_Ignorable_Code_Point, Other_Grapheme_Extend, Other_ID_Continue, Other_ID_Start, Other_Lowercase, Other_Math, and Other_Uppercase. =end original Perl の以前のバージョンでは、Unicode 内部専用となっているいくつかの 特性が間違って露出していました。 正規表現でこれらを使うと、(有効になっている場合は)非推奨警告メッセージが 生成されます。 問題の特性は: Other_Alphabetic, Other_Default_Ignorable_Code_Point, Other_Grapheme_Extend, Other_ID_Continue, Other_ID_Start, Other_Lowercase, Other_Math, Other_Uppercase です。 =begin original It is now possible to change which Unicode properties Perl understands on a per-installation basis. As mentioned above, certain properties are turned off by default. These include all the Unihan properties (which should be accessible via the CPAN module Unicode::Unihan) and any deprecated or Unicode internal-only property that Perl has never exposed. =end original Perl がどの Unicode 特性を理解するかをインストール毎に変更可能に なりました。 上述のように、いくつかの特性はデフォルトでは無効になっています。 これには全ての Unihan 特性 (これらは CPAN モジュール Unicode::Unihan 経由でアクセスできます) 、 非推奨特性、Perl が決して露出させない Unicode 内部専用の特性を含みます。 =begin original The generated files in the C directory are now more clearly marked as being stable, directly usable by applications. New hash entries in them give the format of the normal entries, which allows for easier machine parsing. Perl can generate files in this directory for any property, though most are suppressed. You can find instructions for changing which are written in L. =end original C ディレクトリに生成されたファイルは、安定していて、 アプリケーションから直接利用可能であるとより明確に記されました。 これらの新しいハッシュエントリは通常のエントリの形式であり、 マシンがよりよくパースできるようになっています。 Perl はあらゆる特性に関してこのディレクトリにファイルを生成できますが、 ほとんどは抑制されています。 何が書かれるかを変更する手順は L にあります。 =head1 Modules and Pragmata (モジュールとプラグマ) =head2 New Modules and Pragmata (新しいモジュールとプラグマ) =over 4 =item C =begin original C is a new lexically-scoped alternative for the C module. The bundled version is 2.06_01. Note that in this release, using a string eval when C is in effect can cause the autodie behaviour to leak into the surrounding scope. See L for more details. =end original C は C モジュール代用品で、新しくレキシカルスコープを 持つものです。 同梱されているバージョンは 2.06_01 です。 このリリースでは、C が有効の時に文字列 eval を使うと、 autodie の振る舞いが周りのスコープに漏れるかもしれないことに 注意してください。 さらなる詳細については L を参照してください。 =begin original Version 2.06_01 has been added to the Perl core. =end original バージョン 2.06_01 が Perl コアに追加されました。 =item C =begin original Version 2.024 has been added to the Perl core. =end original バージョン 2.024 が Perl コアに追加されました。 =item C =begin original C allows you to lexically disable or enable overloading for some or all operations. =end original このプラグマは、演算子の一部あるいは全部を、レキシカルに無効化あるいは 有効化します。 =begin original Version 0.001 has been added to the Perl core. =end original バージョン 0.001 が Perl コアに追加されました。 =item C =begin original C establishes an ISA relationship with base classes at compile time. It provides the key feature of C without further unwanted behaviors. =end original C は、基底クラスとの ISA 関係をコンパイル時に構築します。 これは、更なる望まない振る舞いなしに C の主となる機能を 提供します。 =begin original Version 0.223 has been added to the Perl core. =end original バージョン 0.223 が Perl コアに追加されました。 =item C =begin original Version 1.40 has been added to the Perl core. =end original バージョン 1.40 が Perl コアに追加されました。 =item C =begin original Version 1.03 has been added to the Perl core. =end original バージョン 1.03 が Perl コアに追加されました。 =item C =begin original Version 2.4 has been added to the Perl core. =end original バージョン 2.4 が Perl コアに追加されました。 =item C =begin original Version 0.003 has been added to the Perl core. =end original バージョン 0.003 が Perl コアに追加されました。 =back =head2 Updated Pragmata (更新されたプラグマ) =over 4 =item C =begin original Upgraded from version 2.13 to 2.15. =end original バージョン 2.13 から 2.15 に更新されました。 =item C =begin original Upgraded from version 0.22 to 0.23. =end original バージョン 0.22 から 0.23 に更新されました。 =item C =begin original C now contains the Unicode F database file. This has the effect of adding some extra C<\N> character names that formerly wouldn't have been recognised; for example, C<"\N{LATIN CAPITAL LETTER GHA}">. =end original C は Unicode F データベースファイルを 含むようになりました。 これにより、以前は認識されなかった追加の C<\N> 文字名(例えば C<"\N{LATIN CAPITAL LETTER GHA}">) が追加される効果があります。 =begin original Upgraded from version 1.06 to 1.07. =end original バージョン 1.06 から 1.07 に更新されました。 =item C =begin original Upgraded from version 1.13 to 1.20. =end original バージョン 1.13 から 1.20 に更新されました。 =item C =begin original C now supports %.0f formatting internally. =end original C は内部で %.0f フォーマットに対応するようになりました。 =begin original C no longer suppresses C warnings. [perl #71204] =end original C はもはや C 警告を抑制しません。 [perl #71204] =begin original Upgraded from version 1.17 to 1.19. =end original バージョン 1.17 から 1.19 に更新されました。 =item C =begin original In C, the meaning of the C<:5.10> and C<:5.10.X> feature bundles has changed slightly. The last component, if any (i.e. C) is simply ignored. This is predicated on the assumption that new features will not, in general, be added to maintenance releases. So C<:5.10> and C<:5.10.X> have identical effect. This is a change to the behaviour documented for 5.10.0. =end original C では、C<:5.10> および C<:5.10.X> で組み込まれる機能が僅かに 変更されました。 最後の要素 (つまり C) がもしあっても、単に無視されます。 これは、一般的にはメンテナンスリリースでは新しい機能はないという仮定に 基づいています。 従って、C<:5.10> と C<:5.10.X> は同じ効果を持ちます。 これは 5.10.0 で文書化されている振る舞いへの変更です。 =begin original C now includes the C feature: =end original C は C 機能を含むようになりました: use feature "unicode_strings"; =begin original This pragma turns on Unicode semantics for the case-changing operations (C, C, C, C) on strings that don't have the internal UTF-8 flag set, but that contain single-byte characters between 128 and 255. =end original このプラグマは、内部 UTF-8 フラグは設定されていないけれども、128 から 255 までの単一バイト文字を含んでいる文字列に対する、大文字小文字を変更する 操作 (C, C, C, C) での Unicode の意味論を 有効にします。 =begin original Upgraded from version 1.11 to 1.16. =end original バージョン 1.11 から 1.16 に更新されました。 =item C =begin original C now includes the C method to allow subclasses of C to pick where in %^H to store their stash. =end original C には、C のサブクラスから、自分のスタッシュが %^H のどこに 保管されているかをわかるようにするための C メソッドが 追加されました。 =begin original Upgraded from version 0.02 to 0.03. =end original バージョン 0.02 から 0.03 に更新されました。 =item C =begin original Upgraded from version 0.5565 to 0.62. =end original バージョン 0.5565 から 0.62 に更新されました。 =item C =begin original C is now implemented as an XS extension. The documented interface has not changed. Code relying on the implementation detail that some C methods happened to be available at all times gets to "keep both pieces". =end original C は XS エクステンションとして実行されました。 文書化されたインターフェースに変更はありません。 利用可能になってしまっていたいくつかの C メソッドの実装詳細に 依存しているコードは、"keep both pieces" になります。 =begin original Upgraded from version 1.00 to 1.02. =end original バージョン 1.00 から 1.02 に更新されました。 =item C =begin original C now allow overloading of 'qr'. =end original C は 'qr' をオーバーロードできるようになりました。 =begin original Upgraded from version 1.06 to 1.10. =end original バージョン 1.06 から 1.10 に更新されました。 =item C =begin original Upgraded from version 1.67 to 1.75. =end original バージョン 1.67 から 1.75 に更新されました。 =item C =begin original Upgraded from version 1.14 to 1.32. =end original バージョン 1.14 から 1.32 に更新されました。 =item C =begin original C now has support for L as described earlier in this document and in its own documentation. =end original C は、この文書のはじめの方で記述し、独自の文書もある、 L に対応しました。 =begin original Upgraded from version 0.74 to 0.82. =end original バージョン 0.74 から 0.82 に更新されました。 =item C =begin original C has a new C function. It also includes a new C warning category. See also L for this change. =end original C に新しい C 関数が追加されました。 また、新しい C 警告カテゴリが追加されました。 この変更については L も参照してください。 =begin original Upgraded from version 1.06 to 1.09. =end original バージョン 1.06 から 1.09 に更新されました。 =back =head2 Updated Modules (更新されたモジュール) =over 4 =item C =begin original Upgraded from version 0.24 to 0.38. =end original バージョン 0.24 から 0.38 に更新されました。 =item C =begin original Upgraded from version 1.38 to 1.54. =end original バージョン 1.38 から 1.54 に更新されました。 =item C =begin original Upgraded from version 0.79 to 0.87. =end original バージョン 0.79 から 0.87 に更新されました。 =item C =begin original Upgraded from version 5.63 to 5.70. =end original バージョン 5.63 から 5.70 に更新されました。 =item C =begin original Upgraded from version 0.74 to 0.78. =end original バージョン 0.74 から 0.78 に更新されました。 =item C =begin original Upgraded from version 1.05 to 1.12. =end original バージョン 1.05 から 1.12 に更新されました。 =item C =begin original Upgraded from version 0.83 to 0.96. =end original バージョン 0.83 から 0.96 に更新されました。 =item C =begin original Upgraded from version 1.09 to 1.11_01. =end original バージョン 1.09 から 1.11_01 に更新されました。 =item C =begin original Upgraded from version 3.29 to 3.48. =end original バージョン 3.29 から 3.48 に更新されました。 =item C =begin original Upgraded from version 0.33 to 0.36. =end original バージョン 0.33 から 0.36 に更新されました。 =begin original NOTE: C is deprecated and may be removed from a future version of Perl. =end original 注意: C は非推奨で、将来のバージョンの Perl では 削除されるかもしれません。 =item C =begin original Upgraded from version 2.008 to 2.024. =end original バージョン 2.008 から 2.024 に更新されました。 =item C =begin original Upgraded from version 1.9205 to 1.94_56. =end original バージョン 1.9205 から 1.94_56 に更新されました。 =item C =begin original Upgraded from version 0.84 to 0.90. =end original バージョン 0.84 から 0.90 に更新されました。 =item C =begin original Upgraded from version 0.06_02 to 0.46. =end original バージョン 0.06_02 から 0.46 に更新されました。 =item C =begin original Upgraded from version 2.121_14 to 2.125. =end original バージョン 2.121_14 から 2.125 に更新されました。 =item C =begin original Upgraded from version 1.816_1 to 1.820. =end original バージョン 1.816_1 から 1.820 に更新されました。 =item C =begin original Upgraded from version 3.13 to 3.19. =end original バージョン 3.13 から 3.19 に更新されました。 =item C =begin original Upgraded from version 1.15 to 1.16. =end original バージョン 1.15 から 1.16 に更新されました。 =item C =begin original Upgraded from version 2.36_01 to 2.39. =end original バージョン 2.36_01 から 2.39 に更新されました。 =item C =begin original Upgraded from version 5.45 to 5.47. =end original バージョン 5.45 から 5.47 に更新されました。 =item C =begin original Upgraded from version 2.23 to 2.39. =end original バージョン 2.23 から 2.39 に更新されました。 =item C =begin original Upgraded from version 5.62 to 5.64_01. =end original バージョン 5.62 から 5.64_01 に更新されました。 =item C =begin original Upgraded from version 0.21 to 0.27. =end original バージョン 0.21 から 0.27 に更新されました。 =item C =begin original Upgraded from version 1.13 to 1.16. =end original バージョン 1.13 から 1.16 に更新されました。 =item C =begin original Upgraded from version 0.2 to 0.22. =end original バージョン 0.2 から 0.22 に更新されました。 =item C =begin original Upgraded from version 1.44 to 1.55. =end original バージョン 1.44 から 1.55 に更新されました。 =item C =begin original Upgraded from version 6.42 to 6.56. =end original バージョン 6.42 から 6.56 に更新されました。 =item C =begin original Upgraded from version 1.51_01 to 1.57. =end original バージョン 1.51_01 から 1.57 に更新されました。 =item C =begin original Upgraded from version 2.18_02 to 2.21. =end original バージョン 2.18_02 から 2.21 に更新されました。 =item C =begin original Upgraded from version 0.14 to 0.24. =end original バージョン 0.14 から 0.24 に更新されました。 =item C =begin original Upgraded from version 2.04 to 2.08_01. =end original バージョン 2.04 から 2.08_01 に更新されました。 =item C =begin original Upgraded from version 0.18 to 0.22. =end original バージョン 0.18 から 0.22 に更新されました。 =item C =begin original Upgraded from version 0.82 to 0.84. =end original バージョン 0.82 から 0.84 に更新されました。 =item C =begin original Upgraded from version 1.07 to 1.08. =end original バージョン 1.07 から 1.08 に更新されました。 =item C =begin original Upgraded from version 2.37 to 2.38. =end original バージョン 2.37 から 2.38 に更新されました。 =item C =begin original Upgraded from version 1.23_01 to 1.25_02. =end original バージョン 1.23_01 から 1.25_02 に更新されました。 =item C =begin original Upgraded from version 1.07 to 1.10. =end original バージョン 1.07 から 1.10 に更新されました。 =item C =begin original Upgraded from version 0.40_1 to 0.54. =end original バージョン 0.40_1 から 0.54 に更新されました。 =item C =begin original Upgraded from version 1.05 to 2.01. =end original バージョン 1.05 から 2.01 に更新されました。 =item C =begin original Upgraded from version 1.12 to 1.14. =end original バージョン 1.12 から 1.14 に更新されました。 =item C =begin original Upgraded from version 0.18 to 0.21. =end original バージョン 0.18 から 0.21 に更新されました。 =item C =begin original Upgraded from version 0.01 to 0.02. =end original バージョン 0.01 から 0.02 に更新されました。 =item C =begin original Upgraded from version 0.04 to 0.06. =end original バージョン 0.04 から 0.06 に更新されました。 =item C =begin original Upgraded from version 1.88 to 1.89_01. =end original バージョン 1.88 から 1.89_01 に更新されました。 =item C =begin original Upgraded from version 0.16 to 0.19. =end original バージョン 0.16 から 0.19 に更新されました。 =item C =begin original Upgraded from version 0.21 to 0.24. =end original バージョン 0.21 から 0.24 に更新されました。 =item C =begin original Upgraded from version 1.37 to 1.56. =end original バージョン 1.37 から 1.56 に更新されました。 =item C =begin original Upgraded from version 1.01_02 to 1.01_03. =end original バージョン 1.01_02 から 1.01_03 に更新されました。 =item C =begin original Upgraded from version 3.07_01 to 3.08. =end original バージョン 3.07_01 から 3.08 に更新されました。 =item C =begin original Upgraded from version 0.2808_01 to 0.3603. =end original バージョン 0.2808_01 から 0.3603 に更新されました。 =item C =begin original Upgraded from version 2.12 to 2.29. =end original バージョン 2.12 から 2.29 に更新されました。 =item C =begin original Upgraded from version 0.12 to 0.16. =end original バージョン 0.12 から 0.16 に更新されました。 =item C =begin original Upgraded from version 0.22 to 0.34. =end original バージョン 0.22 から 0.34 に更新されました。 =item C =begin original Upgraded from version 0.01 to 0.06. =end original バージョン 0.01 から 0.06 に更新されました。 =item C =begin original Upgraded from version 3.6 to 3.9. =end original バージョン 3.6 から 3.9 に更新されました。 =item C =begin original Upgraded from version 2.33 to 2.36. =end original バージョン 2.33 から 2.36 に更新されました。 =item C =begin original Upgraded from version 0.60_01 to 0.64. =end original バージョン 0.60_01 から 0.64 に更新されました。 =item C =begin original Upgraded from version 0.32 to 0.36. =end original バージョン 0.32 から 0.36 に更新されました。 =item C =begin original Upgraded from version 0.01 to 0.02. =end original バージョン 0.01 から 0.02 に更新されました。 =item C =begin original Upgraded from version 1.04 to 1.06. =end original バージョン 1.04 から 1.06 に更新されました。 =item C =begin original Upgraded from version 1.35 to 1.37. =end original バージョン 1.35 から 1.37 に更新されました。 =item C =begin original Upgraded from version 3.14_02 to 3.15_02. =end original バージョン 3.14_02 から 3.15_02 に更新されました。 =item C =begin original Upgraded from version 0.01 to 1.02. =end original バージョン 0.01 から 1.02 に更新されました。 =begin original NOTE: C is deprecated and may be removed from a future version of Perl. =end original 注意: C は非推奨で、将来のバージョンの Perl では 削除されるかもしれません。 =item C =begin original Upgraded from version 3.05 to 3.13. =end original バージョン 3.05 から 3.13 に更新されました。 =item C =begin original Upgraded from version 2.12 to 2.22. =end original バージョン 2.12 から 2.22 に更新されました。 =item C =begin original Upgraded from version 1.11 to 1.17. =end original バージョン 1.11 から 1.17 に更新されました。 =item C =begin original Upgraded from version 2.18 to 2.22. =end original バージョン 2.18 から 2.22 に更新されました。 =item C =begin original Upgraded from version 2.13 to 2.16. =end original バージョン 2.13 から 2.16 に更新されました。 =begin original NOTE: C is deprecated and may be removed from a future version of Perl. =end original 注意: C は非推奨で、将来のバージョンの Perl では 削除されるかもしれません。 =item C =begin original Upgraded from version 0.22 to 0.27. =end original バージョン 0.22 から 0.27 に更新されました。 =item C =begin original Upgraded from version 1.12 to 2.02. =end original バージョン 1.12 から 2.02 に更新されました。 =item C =begin original Upgraded from version 0.18 to 0.20. =end original バージョン 0.18 から 0.20 に更新されました。 =item C =begin original Upgraded from version 1.25 to 1.25_02. =end original バージョン 1.25 から 1.25_02 に更新されました。 =item C =begin original Upgraded from version 2.64 to 3.17. =end original バージョン 2.64 から 3.17 に更新されました。 =item C =begin original Upgraded from version 0.72 to 0.94. =end original バージョン 0.72 から 0.94 に更新されました。 =item C =begin original Upgraded from version 2.0.0 to 2.02. =end original バージョン 2.0.0 から 2.02 に更新されました。 =item C =begin original Upgraded from version 3.26 to 3.27. =end original バージョン 3.26 から 3.27 に更新されました。 =item C =begin original Upgraded from version 3.03 to 3.03_01. =end original バージョン 3.03 から 3.03_01 に更新されました。 =item C =begin original Upgraded from version 2.00 to 2.11. =end original バージョン 2.00 から 2.11 に更新されました。 =item C =begin original Upgraded from version 2.01 to 2.09. =end original バージョン 2.01 から 2.09 に更新されました。 =item C =begin original Upgraded from version 1.37 to 1.38. =end original バージョン 1.37 から 1.38 に更新されました。 =item C =begin original Upgraded from version 1.9711 to 1.9719. =end original バージョン 1.9711 から 1.9719 に更新されました。 =item C =begin original Upgraded from version 1.18 to 1.1901_01. =end original バージョン 1.18 から 1.1901_01 に更新されました。 =item C =begin original Upgraded from version 1.12 to 1.15. =end original バージョン 1.12 から 1.15 に更新されました。 =item C =begin original Upgraded from version 0.52 to 0.52_01. =end original バージョン 0.52 から 0.52_01 に更新されました。 =item C =begin original Upgraded from version 1.02 to 1.03. =end original バージョン 1.02 から 1.03 に更新されました。 =item C =begin original Upgraded from version 0.34 to 0.39. =end original バージョン 0.34 から 0.39 に更新されました。 =item C =begin original Upgraded from version 0.1001_01 to 0.1101. =end original バージョン 0.1001_01 から 0.1101 に更新されました。 =item C =begin original Upgraded from version 0.08 to 0.10. =end original バージョン 0.08 から 0.10 に更新されました。 =back =head2 Removed Modules and Pragmata (削除されたモジュールとプラグマ) =over 4 =item C =begin original Removed from the Perl core. Prior version was 1.02. =end original Perl コアから削除されました。 以前のバージョンは 1.02 でした。 =item C =begin original Removed from the Perl core. Prior version was 'undef'. =end original Perl コアから削除されました。 以前のバージョンは 'undef' でした。 =item C =begin original Removed from the Perl core. Prior version was 5.50. =end original Perl コアから削除されました。 以前のバージョンは 5.50 でした。 =item C =begin original Removed from the Perl core. Prior version was 'undef'. =end original Perl コアから削除されました。 以前のバージョンは 'undef' でした。 =item C =begin original Removed from the Perl core. Prior version was 1.03. =end original Perl コアから削除されました。 以前のバージョンは 1.03 でした。 =item C =begin original Removed from the Perl core. Prior version was 6.42. =end original Perl コアから削除されました。 以前のバージョンは 6.42 でした。 =item C =begin original Removed from the Perl core. Prior version was 6.42. =end original Perl コアから削除されました。 以前のバージョンは 6.42 でした。 =item C =begin original Removed from the Perl core. Prior version was 2.3. =end original Perl コアから削除されました。 以前のバージョンは 2.3 でした。 =item C =begin original Removed from the Perl core. Prior version was 0.02. =end original Perl コアから削除されました。 以前のバージョンは 0.02 でした。 =item C =begin original Removed from the Perl core. Prior version was 0.02. =end original Perl コアから削除されました。 以前のバージョンは 0.02 でした。 =item C =begin original Removed from the Perl core. Prior version was 0.01. =end original Perl コアから削除されました。 以前のバージョンは 0.01 でした。 =item C =begin original Removed from the Perl core. Prior version was 0.01. =end original Perl コアから削除されました。 以前のバージョンは 0.01 でした。 =item C =begin original Removed from the Perl core. Prior version was 0.26_01. =end original Perl コアから削除されました。 以前のバージョンは 0.26_01 でした。 =item C =begin original Removed from the Perl core. Prior version was 0.01. =end original Perl コアから削除されました。 以前のバージョンは 0.01 でした。 =item C =begin original Removed from the Perl core. Prior version was 1.1. =end original Perl コアから削除されました。 以前のバージョンは 1.1 でした。 =back =head2 Deprecated Modules and Pragmata (非推奨になったモジュールとプラグマ) =begin original See L above. =end original 上述の L を参照してください。 =head1 Documentation (文書) =head2 New Documentation (新しい文書) =over 4 =item * =begin original L contains instructions on how to build perl for the Haiku platform. =end original L には、Haiku プラットフォームで perl をビルドする方法に ついての説明が含まれています。 =item * =begin original L describes the new interface for pluggable Method Resolution Orders. =end original L は、プラグ可能なメソッド解決順序の新しい インターフェースを記述しています。 =item * =begin original L, by Richard Foley, provides an introduction to the use of performance and optimization techniques which can be used with particular reference to perl programs. =end original L は Richard Foley によるもので、perl プログラムの個々の 参照で使えるパフォーマンスと最適化の技術の使用に関する導入を 提供します。 =item * =begin original L describes how to access the perl source using the I version control system. =end original L は、I バージョン管理システムを使って perl の ソースにアクセスする方法について記述しています。 =item * =begin original L extends the "Social contract about contributed modules" into the beginnings of a document on Perl porting policies. =end original L は "Social contract about contributed modules" を Perl 移植ポリシーの文書の先頭に拡張しました。 =back =head2 Changes to Existing Documentation (既存の文書の変更) =over =item * =begin original The various large F files (which listed every change made to perl over the last 18 years) have been removed, and replaced by a small file, also called F, which just explains how that same information may be extracted from the git version control system. =end original (過去 18 年間にわたって perl に対して行われた全ての変更の一覧である) 様々な大きな F ファイルが取り除かれ、 単に git バージョン制御システムから同じ情報を取り出す方法を説明した 小さいファイル F に置き換えられました。 =item * =begin original F has been deleted, as it mainly described interacting with the old Perforce-based repository, which is now obsolete. Information still relevant has been moved to L. =end original F は削除されました; これは主に古い Perforce を基としたレポジトリとの相互作用について記述していて、 これは古いものです。 まだ関連のある情報は L に移動しました。 =item * =begin original The syntax C is now documented as valid, as is the syntax C, although actually using the latter may not be the best idea for the readability of your source code. =end original C という文法は有効であると文書化されました; C も同様です; しかし実際には後者を使うことは、ソースコードの可読性の面から 最良の考えではないでしょう。 =item * =begin original Documented -X overloading. =end original -X のオーバーロードが文書化されました。 =item * =begin original Documented that C treats specially most of the filetest operators =end original C がほとんどのファイルテスト演算子を特別に扱うことが文書化されました。 =item * =begin original Documented C as a syntax modifier. =end original 文法修飾子としての C が文書化されました。 =item * =begin original Eliminated "Old Perl threads tutorial", which described 5005 threads. =end original 5005 スレッドを記述した、「古い Perl スレッドのチュートリアル」が 削除されました。 =begin original F is the same material reworked for ithreads. =end original F はiスレッド用に書き換えられています。 =item * =begin original Correct previous documentation: v-strings are not deprecated =end original 以前の文書が修正されました: v-文字列は非推奨ではありません =begin original With version objects, we need them to use MODULE VERSION syntax. This patch removes the deprecation notice. =end original バージョンオブジェクトに対しては use MODULE VERSION 文法を使う必要が あります。 このパッチにより、非推奨の注意は削除されました。 =item * =begin original Security contact information is now part of L. =end original セキュリティ窓口情報は L の一部となりました。 =item * =begin original A significant fraction of the core documentation has been updated to clarify the behavior of Perl's Unicode handling. =end original コア文書のかなりの割合に対して、Perl の Unicode の扱いに関する振る舞いを 明確にするために更新されました。 =begin original Much of the remaining core documentation has been reviewed and edited for clarity, consistent use of language, and to fix the spelling of Tom Christiansen's name. =end original 残りのコアドキュメントのほとんどが、明確化、言語の一貫した使用、 Tom Christiansen の綴りの修正のために見直され編集されました。 =item * =begin original The Pod specification (L) has been updated to bring the specification in line with modern usage already supported by most Pod systems. A parameter string may now follow the format name in a "begin/end" region. Links to URIs with a text description are now allowed. The usage of C"section"E> has been marked as deprecated. =end original Pod 仕様書 (L) は、ほとんどの Pod システムが既に対応している モダンな使用法に対応するように更新されました。 パラメータ文字列は "begin/end" 領域のフォーマット名の後に続くように なりました。 説明テキスト付きの URI へのリンクが可能になりました。 C"section"E> という使い方は非推奨となりました。 =item * =begin original L has been documented in L as a means to get conditional loading of modules despite the implicit BEGIN block around C. =end original L は L で、C の周りの暗黙の BEGIN ブロックにも 関わらず、モジュールの条件付き読み込みの意味で文書化されていました。 =item * =begin original The documentation for C<$1> in perlvar.pod has been clarified. =end original perlvar.pod の C<$1> に関する文書が明確されました。 =item * =begin original C<\N{U+I}> is now documented. =end original C<\N{U+I}> が文書化されました。 =back =head1 Selected Performance Enhancements (パフォーマンスの向上の抜粋) =over 4 =item * =begin original A new internal cache means that C will often be faster. =end original 新しい内部キャッシュにより、C はしばしばより速くなります。 =item * =begin original The implementation of C Method Resolution Order has been optimised - linearisation for classes with single inheritance is 40% faster. Performance for multiple inheritance is unchanged. =end original C 実装解決順序の実装が最適化されました - 単一継承クラスの 線形化は 40% 速くなりました。 多重継承の性能は変わりません。 =item * =begin original Under C, the locale-relevant information is now cached on read-only values, such as the list returned by C. This makes operations such as C in the scope of C much faster. =end original C の元では、ロケール関係の情報は、C で 返されるリストのように、読み込み専用値としてキャッシュされるように なりました。 これによって、C での C のような操作が とても速くなります。 =item * =begin original Empty C methods are no longer called. =end original 空の C メソッドはもはや呼び出されなくなります。 =item * =begin original C is now faster. =end original C はより速くなりました。 =item * =begin original C on empty hash is now faster. =end original 空ハッシュに対する C はより速くなりました。 =item * =begin original C has been optimized to be faster than C. =end original C は C より早くなるように最適化されました。 =item * =begin original The string repetition operator (C<$str x $num>) is now several times faster when C<$str> has length one or C<$num> is large. =end original 文字列繰り返し演算子 (C<$str x $num>) は、C<$str> が 1 文字だったり C<$num> が大きいときに数倍速くなりました。 =item * =begin original Reversing an array to itself (as in C<@a = reverse @a>) in void context now happens in-place and is several orders of magnitude faster than it used to be. It will also preserve non-existent elements whenever possible, i.e. for non magical arrays or tied arrays with C and C methods. =end original 無効コンテキストで (C<@a = reverse @a> のように) 配列を反転して 自分自身に代入する場合、その場で行われるようになり、 以前より数桁速くなりました。 これはまた存在しない要素をできるだけ保存します; つまり、マジカルでない 配列や C と C メソッドを持つ tie された配列の場合です。 =back =head1 Installation and Configuration Improvements (インストールと設定の改良) =over 4 =item * =begin original L, L, L and L are now all generated at build time, rather than being shipped as part of the release. =end original L, L, L, L はリリースの 一部としてではなく、全てビルド時に生成されるようになりました。 =item * =begin original If C and C are the same, then they are only added to C<@INC> once. =end original C と C が同じなら、C<@INC> には 1 回だけ 追加されます。 =item * =begin original C<$Config{usedevel}> and the C-level C are now defined if perl is built with C<-Dusedevel>. =end original もし perl が C<-Dusedevel> 付きでビルドされたなら、 C<$Config{usedevel}> と C レベルの C が定義されるように なりました。 =item * =begin original F will enable use of C<-fstack-protector>, to provide protection against stack-smashing attacks, if the compiler supports it. =end original F は、もしコンパイラが対応しているなら、 スタック破壊攻撃に対する防御のために、C<-fstack-protector> の使用を 有効にします。 =item * =begin original F will now determine the correct prototypes for re-entrant functions and for C if you are using a C++ compiler rather than a C compiler. =end original F は、もし C コンパイラでなく C++ コンパイラを使うなら、 再入可能な関数と C のための正しいプロトタイプを 決定するようになりました。 =item * =begin original On Unix, if you build from a tree containing a git repository, the configuration process will note the commit hash you have checked out, for display in the output of C and C. Unpushed local commits are automatically added to the list of local patches displayed by C. =end original Unix では、もし git レポジトリを含むツリーからビルドするなら、 設定プロセスは C と C の出力での表示のために、 チェックアウトしたコミットハッシュを記録します。 プッシュされないローカルのコミットは自動的に C によって表示されるローカルパッチの一覧に追加されます。 =item * =begin original Perl now supports SystemTap's C compatibility layer and an issue with linking C has been fixed in the process. =end original SystemTap の C 互換層に対応し、その過程で C が リンクするときの問題を修正しました。 =item * =begin original perldoc now uses C instead of C for improved behaviour in the face of C's new usage of ANSI escape codes. =end original perldoc は、C の ANSI エスケープコードの新しい使い方に直面したときの 振る舞いを改善するために、C ではなく C を使うようになりました。 =item * =begin original C now reports use of the compile-time options C and C. =end original C はコンパイル時オプション C と C の仕様について報告するようになりました。 =item * =begin original As part of the flattening of F, all extensions on all platforms are built by F. This replaces the Unix-specific F, VMS-specific F and Win32-specific F. =end original F のフラット化の一部として、全てのプラットフォームの全ての エクステンションは F でビルドされます。 これは Unix 固有の F、VMS 固有の F、 Win32 固有の F を置き換えます。 =back =head1 Internal Changes (内部の変更) =begin original Each release of Perl sees numerous internal changes which shouldn't affect day to day usage but may still be notable for developers working with Perl's source code. =end original Perl のそれぞれのリリースでは普段の使用には影響を与えないはずの 多くの内部変更を行っていますが、 それでも Perl のソースコードで作業をする開発者にとって 注目するべきものもあります。 =over =item * =begin original The J.R.R. Tolkien quotes at the head of C source file have been checked and proper citations added, thanks to a patch from Tom Christiansen. =end original C ソースファイルの先頭にある J.R.R. Tolkien の引用文がチェックされ、 適切な言及が追加されました; Tom Christiansen からのパッチに感謝します。 =item * =begin original The internal structure of the dual-life modules traditionally found in the F and F directories in the perl source has changed significantly. Where possible, dual-lifed modules have been extracted from F and F. =end original 伝統的に F と F ディレクトリにあった二重管理モジュールの 内部構造が大きく変わりました。 可能であれば、二重管理モジュールは F と F から展開されました。 =begin original Dual-lifed modules maintained by Perl's developers as part of the Perl core now live in F. Dual-lifed modules maintained primarily on CPAN now live in F. When reporting a bug in a module located under F, please send your bug report directly to the module's bug tracker or author, rather than Perl's bug tracker. =end original Perl コアの一部として Perl の開発者によって保守されている二重管理 モジュールは F に移動しました。 CPAN をプライマリとして保守されている二重管理モジュールは F に 移動しました。 F にあるモジュールのバグを報告する場合は、Perl の バグトラッカーではなく、モジュールのバグトラッカーや作者に直接 送ってください。 =item * =begin original C<\N{...}> now compiles better, always forces UTF-8 internal representation =end original C<\N{...}> はよりよくコンパイルされるようになり、常に UTF-8 内部表現が強制されます =begin original Perl's developers have fixed several problems with the recognition of C<\N{...}> constructs. As part of this, perl will store any scalar or regex containing C<\N{I}> or C<\N{U+I}> in its definition in UTF-8 format. (This was true previously for all occurences of C<\N{I}> that did not use a custom translator, but now it's always true.) =end original Perl の開発者は C<\N{...}> 構造の認識に関するいくつかの問題を修正しました。 この一部として、定義で C<\N{I}> や C<\N{U+I}> を 含むあらゆるスカラや正規表現を UTF-8 形式で保管できるようになりました (これは以前はカスタム変換器を使っていない C<\N{I}> について 真でしたが、今は常に真です。) =item * =begin original Perl_magic_setmglob now knows about globs, fixing RT #71254. =end original Perl_magic_setmglob は glob について知るようになります; RT #71254 を修正しました。 =item * =begin original C no longer exists. RVs are now stored in IVs. =end original C はもはや存在しません。 RV は IV に保管されます。 =item * =begin original C now accepts a null first argument. In addition, a full audit was made of the "not NULL" compiler annotations, and those for several other internal functions were corrected. =end original C は最初の引数として null も受け付けるようになりました。 さらに、「非 NULL」に関するコンパイラ注釈の完全な監査が行われ、 その他のいくつかの内部関数が修正されました。 =item * =begin original New macros C, C, C, C have been added to formalise the temporary saving of the C variable. =end original C 変数を一時的に補完することを形式化するための、 C, C, C, C という 新しいマクロが追加されました。 =item * =begin original The function C has been added to augment C. =end original C 関数を拡大するために、C 関数が 追加されました。 =item * =begin original The function C has been added, equivalent to C followed by C. =end original C の後 C を実行するのと等価な、 C 関数が追加されました。 =item * =begin original The function C has been added, equivalent to C and then performing the action relevant to the flag. =end original C 関数が追加されました; これは C と 等価で、それからフラグに関連する動作を行います。 =begin original Two flag bits are currently supported. =end original 現在のところ二つのフラグビットに対応しています。 =over 4 =item * =begin original C will call C for you. (Note that this does not convert an sequence of ISO 8859-1 characters to UTF-8). A wrapper, C is available for this. =end original C はあなたのために C を呼び出します。 (これは ISO 8859-1 文字のシーケンスを UTF-8 に変換しないことに 注意してください。) これのためのラッパである C が利用可能です。 =item * =begin original C now calls C on the new SV. =end original C は新しい SV に対して C を呼び出すようになります。 =back =begin original There is also a wrapper that takes constant strings, C. =end original 定数文字列を取るラッパである C もあります。 =item * =begin original The function C has been added as a wrapper to C. =end original C へのラッパとして、C 関数が追加されました。 =item * =begin original Perl now exports the functions C and C. =end original C 関数と C 関数が エクスポートされるようになりました。 =item * =begin original C has been exterminated from the core code, replaced by local STRLEN temporaries, or C<*_nolen()> calls. Either approach is faster than C, which is a pointer dereference into the interpreter structure under ithreads, and a global variable otherwise. =end original C はコアコードから全て取り除かれ、ローカルな STRLEN テンポラリか C<*_nolen()> 呼び出しに置き換えられました。 どちらの手法も、ithreads ではインタプリタ構造体へ、さもなければ グローバル変数へポインタへのデリファレンスである C よりも高速です。 =item * =begin original C used to leave freed memory accessible via C on the scalar. It now updates the linked list to remove each piece of magic as it is freed. =end original C は、スカラでの C 経由でアクセスできる 開放されたメモリをそのままにしていました。 それぞれのマジックのかけらが開放されるごとに削除されるように、 リンクリストが更新されるようになりました。 =item * =begin original Under ithreads, the regex in C is now reference counted. This eliminates a lot of hackish workarounds to cope with it not being reference counted. =end original ithreads において、C 内の正規表現は参照カウントを 行うようにありました。 これにより、参照カウントを行っていないことによる多くのハックっぽい 回避方法が不要になります。 =item * =begin original C would sometimes incorrectly turn on C. This has been fixed. =end original C は時々間違って C を作動させていました。 これは修正されました。 =item * =begin original The I IV and NV flags are now not set if the string value has trailing "garbage". This behaviour is consistent with not setting the public IV or NV flags if the value is out of range for the type. =end original IV と NV の I フラグは、もし文字列値の末尾に「ゴミ」が ついている場合はセットされなくなりました。 この振る舞いは、値が型の範囲を超えているときに IV や NV の public フラグがセットされないことと一貫しています。 =item * =begin original Uses of C, C, C, C, C etc have been replaced by C in the core code, and non-dual-life modules, as C is clearer to those unfamiliar with the core code. =end original C, C, C, C, C などは、 コアコードおよび 2 重管理されていないモジュールでは C に置き換えられました; C はコアコードに親しんでいなくても より明確だからです。 =item * =begin original A macro C has been added, which on (non-pedantic) gcc will not cast away C, returning a C. Macros C, C etc build on this, casting to C etc without casting away C. This allows proper compile-time auditing of C correctness in the core, and helped picked up some errors (now fixed). =end original C マクロが追加されました; これは (pedantic でない) gcc では C 状態を捨てずに、C を返します。 C, C などのマクロはこれを使って 作成され、C 状態を捨てることなく C などにキャストします。 これにより C の正当性の適切なコンパイル時の監査が可能になり、 いくつかのエラーの発見に役立ちました(これらは修正されました)。 =item * =begin original Macros C and C have been added, for pushing SVs on the stack and mortalizing them. =end original SV をスタックにプッシュし、それを揮発化させるための、 C と C のマクロが追加されました。 =item * =begin original Use of the private structure C has changed slightly. Nothing outside the core should be accessing this directly anyway. =end original プライベート構造体 C の使用が少し変更されました。 どちらにしろ、コアの外側からこれにアクセスすることは出来ません。 =item * =begin original A new tool, F has been added, that allows you to view how a C preprocessor macro would be expanded when compiled. This is handy when trying to decode the macro hell that is the perl guts. =end original 新しいツールである F が追加され、 コンパイル時に C プリプロセッサマクロがどのように展開されるかを見られます。 これは perl の内部でマクロを展開しようとする時に便利です。 =back =head1 Testing (テスト) =head2 Testing improvements (テストの改良) =over 4 =item Parallel tests (並列テスト) =begin original The core distribution can now run its regression tests in parallel on Unix-like platforms. Instead of running C, set C in your environment to the number of tests to run in parallel, and run C. On a Bourne-like shell, this can be done as =end original コア配布は、Unix 風プラットフォームでは退行テストを並列に実行できるように なりました。 C を実行する代わりに、環境変数 C に並列に 実行するテスト数を設定して、C を実行します。 Bourne-風のシェルでは、これは以下のようにします TEST_JOBS=3 make test_harness # Run 3 tests in parallel =begin original An environment variable is used, rather than parallel make itself, because L needs to be able to schedule individual non-conflicting test scripts itself, and there is no standard interface to C utilities to interact with their job schedulers. =end original 並列 make 自身ではなく、環境変数を使います; なぜなら L はここの競合しないテストスクリプト自身を計画できる必要が ありますが、C ユーティリティのジョブスケジューラと相互作用するための 標準的なインターフェースはないからです。 =begin original Note that currently some test scripts may fail when run in parallel (most notably C). If necessary run just the failing scripts again sequentially and see if the failures go away. =end original いくつかのテストスクリプト(特に C)は並列に実行すると 失敗するかもしれないことに注意してください。 もし必要なら、失敗したスクリプトを順番に再実行して、失敗しなくなることを 確認してください。 =item Test harness flexibility (テストハーネスの柔軟性) =begin original It's now possible to override C and friends in F =end original C と F にある親類を上書きできるようになりました。 =item Test watchdog =begin original Several tests that have the potential to hang forever if they fail now incorporate a "watchdog" functionality that will kill them after a timeout, which helps ensure that C and C run to completion automatically. =end original いくつかのテストは、テストが時間切れになった後に kill することで C と C が自動的に実行を終了することを 確実にするために組み込まれた「番犬」機能で失敗すると、 ハングアップしてしまう可能性がありました。 =back =head2 New Tests (新しいテスト) =begin original Perl's developers have added a number of new tests to the core. In addition to the items listed below, many modules updated from CPAN incorporate new tests. =end original Perl の開発者は多くの新しいテストをコアに追加しました。 以下に挙げたものに加えて、CPAN から更新された多くのモジュールに 新しいテストが追加されています。 =over 4 =item * =begin original Significant cleanups to core tests to ensure that language and interpreter features are not used before they're tested. =end original Significant cleanups to core tests to ensure that 言語とインタプリタの機能がテスト前に使われないことを確実にするために、 コアのテストがかなり整理されました。 =item * =begin original C now runs a number of important pre-commit checks which might be of use to anyone working on the Perl core. =end original C は、 Perl コアで作業をしている全員が使うべき、多くの重要なコミット前チェックを 実行します。 =item * =begin original F automatically checks the well-formedness of POD found in all .pl, .pm and .pod files in the F, other than in dual-lifed modules which are primarily maintained outside the Perl core. =end original F は、Perl コア外で主に管理されている 二重管理のモジュール以外において、 F にある全ての .pl, .pm, .pod ファイルで見つかった POD の形式が正しいかどうかをチェックします。 =item * =begin original F now tests that all files listed in MANIFEST are present. =end original F は、 MANIFEST に挙げられている全てのファイルが存在するかをテストします。 =item * =begin original F tests that a bare readdir in while loop sets $_. =end original F は、 while ループ中の裸の readdir が $_ をセットするかをテストします。 =item * =begin original F checks that the debugger can retain source lines from C. =end original F は、 デバッガが C からソース行を得られるかをチェックします。 =item * =begin original F checks that bad layers fail. =end original F は 間違った層が失敗するかをチェックします。 =item * =begin original F checks that PerlIO layers are not leaking. =end original F は PerlIO 層がリークしていないかをチェックします。 =item * =begin original F checks that certain special forms of open work. =end original F は open のある種の特殊な形式が動作するかをチェックします。 =item * =begin original F includes general PerlIO tests. =end original F は PerlIO を全体的にテストします。 =item * =begin original F checks that there is no unexpected interaction between the internal types C and C. =end original F は 内部型 C と C の間で想定外の相互作用がないことを チェックします。 =item * =begin original F checks that mro works properly in the presence of aliased packages. =end original F は エイリアス化されたパッケージが存在したときに MRO が適切に動作するかを チェックします。 =item * =begin original F tests C and C. =end original F は C と C をテストします。 =item * =begin original F tests the interaction of C and threads. =end original F は C とスレッドの相互作用をテストします。 =item * =begin original F tests the interaction of esoteric patterns and threads. =end original F は 難解なパターンとスレッドの相互作用をテストします。 =item * =begin original F tests that C doesn't leak. =end original F は C がリークしていないことをテストします。 =item * =begin original F tests the interaction of regex recursion and threads. =end original F は regex 再帰とスレッドの相互作用をテストします。 =item * =begin original F tests the interaction of patterns with embedded C and threads. =end original F は 組み込みの C があるパターンとスレッドの相互作用をテストします。 =item * =begin original F tests Unicode properties in regular expressions. =end original F は 正規表現中の Unicode 特性をテストします。 =item * =begin original F tests the interaction of Unicode properties and threads. =end original F は Unicode 特性とスレッドの相互作用をテストします。 =item * =begin original F tests the tied methods of C. =end original F は C の tie されたメソッドをテストします。 =item * =begin original F checks that POSIX character classes behave consistently. =end original F は POSIX 文字クラスが一貫性を持って振る舞うかをチェックします。 =item * =begin original F checks that exportable C functions in F work. =end original F F のエクスポート可能な C 関数が動作するかを チェックします。 =item * =begin original F checks that C works. =end original F は C が動作するかをチェックします。 =item * =begin original F tests the interaction of C and threads. =end original F は C とスレッドの相互作用をテストします。 =item * =begin original F checks that upgrading and assigning scalars works. =end original F は スカラの昇格と代入が動作するかをチェックします。 =item * =begin original F checks that Unicode in the lexer works. =end original F は 文法解析器中の Unicode が動作するかをチェックします。 =item * =begin original F checks that Unicode and C work. =end original F は Unicode と C が動作するかをチェックします。 =item * =begin original F tests whether line numbers are correct at EOF =end original F は、 行番号が EOF で正しいかどうかをテストします。 =item * =begin original F tests format scoping. =end original F は フォーマットのスコープをテストします。 =item * =begin original F tests whether C<< @{"_<$file"} >> works. =end original F は C<< @{"_<$file"} >> が動作するかどうかをテストします。 =item * =begin original F tests if -t file test works. =end original F は -t ファイルテストが動作するかどうかをテストします。 =item * =begin original F tests C. =end original F は C をテストします。 =item * =begin original F tests malfunctions of the utf8 cache. =end original F は utf8 キャッシュの障害をテストします。 =item * =begin original F test unicodes C<\p{}> regex constructs. =end original F は Unicode C<\p{}> 正規表現構造をテストします。 =item * =begin original F tests some suitably portable filetest operators to check that they work as expected, particularly in the light of some internal changes made in how filehandles are blessed. =end original F は、移植性のあるファイルテスト演算子が適切に 動作するかどうかをテストします; 特に、どのようにファイルハンドルが bless するかに関する内部変更に 光を当てています。 =item * =begin original F tests that unix times greater than C<2**63>, which can now be handed to C and C, do not cause an internal overflow or an excessively long loop. =end original F は、C<2**63> よりも大きい unix time をテストします; これは C と C で扱えるようになっていて、内部 オーバーフローや, 過度に長いループを引き起こしません。 =back =head1 New or Changed Diagnostics (新しい、または変更された診断メッセージ) =head2 New Diagnostics (新しい診断メッセージ) =over =item * =begin original SV allocation tracing has been added to the diagnostics enabled by C<-Dm>. The tracing can alternatively output via the C mechanism, if that was enabled when the F binary was compiled. =end original C<-Dm> で有効になる診断に、SV 割り当てトレースが追加されました。 トレースは、もし F バイナリがコンパイルされたときに C 機構が有効になっていた場合には、これを通しても出力されます。 =item * =begin original Smartmatch resolution tracing has been added as a new diagnostic. Use C<-DM> to enable it. =end original スマートマッチングの解決のトレースが新しい診断として追加されました。 これを有効にするには C<-DM> を使ってください。 =item * =begin original A new debugging flag C<-DB> now dumps subroutine definitions, leaving C<-Dx> for its original purpose of dumping syntax trees. =end original 新しいデバッグフラグ C<-DB> はサブルーチン定義をダンプするようになり、 C<-Dx> は文法気を出力するという元々の目的のために残されました。 =item * =begin original Perl 5.12 provides a number of new diagnostic messages to help you write better code. See L for details of these new messages. =end original Perl 5.12 は、よりよいコードを書くことを助ける多くの新しい診断メッセージを 提供します。 これらの新しいメッセージの詳細については L を参照してください。 =over 4 =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =begin original This new warning is issued when one attempts to mark a subroutine as lvalue after it has been defined. =end original この新しい警告は、あるサブルーチンを定義した後、それを左辺値として マークしようとしたときに発生します。 =item * =begin original Perl now warns you if C<++> or C<--> are unable to change the value because it's beyond the limit of representation. =end original C<++> や C<--> が、表現の限界を超えるために値の変更が出来ない 場合に警告するようになりました。 =begin original This uses a new warnings category: "imprecision". =end original これは新しい警告カテゴリ "imprecision" を使います。 =item * C, C, C, and C warn when passed undef. =item * C =item * C =item * C =begin original This new fatal error occurs when the C routine C was passed a position that is not within the scalar's string buffer. This could be caused by buggy XS code, and at this point recovery is not possible. =end original これは、C ルーチン C に、スカラの文字列バッファ内でない 位置が渡された時に発生する、新しい致命的エラーです。 これはバグっぽい XS コードによって引き起こされ、この時点では 回復は不可能です。 =item * =begin original The fatal error C is now produced if the C handler returns malformed UTF-8. =end original 致命的エラー C は、C ハンドラが 不正な UTF-8 を返したときに生成されるようになりました。 =item * =begin original If an unresolved named character or sequence was encountered when compiling a regex pattern then the fatal error C<\N{NAME} must be resolved by the lexer> is now produced. This can happen, for example, when using a single-quotish context like C<$re = '\N{SPACE}'; /$re/;>. See L for more examples of how the lexer can get bypassed. =end original 正規表現のコンパイル時に未解決の名前付き文字やシーケンスが発見された場合、 致命的エラー C<\N{NAME} must be resolved by the lexer> が生成されます。 これは、例えば、C<$re = '\N{SPACE}'; /$re/;> のようなシングルクォート風の コンテキストを使うときに発生します。 字句解析器がどのようにバイパスされるかに関するもっと多くの例については、 L を参照してください。 =item * =begin original C is a new fatal error triggered when the character constant represented by C<...> is not a valid hexadecimal number. =end original C は新しい致命的エラーで、 C<...> で表現される文字定数が有効な 16 進数でなかった場合に発生します。 =item * =begin original The new meaning of C<\N> as C<[^\n]> is not valid in a bracketed character class, just like C<.> in a character class loses its special meaning, and will cause the fatal error C<\N in a character class must be a named character: \N{...}>. =end original C<[^\n]> としての新しい C<\N> の意味は、C<.> が特別な 意味を失うのと同様、大かっこの文字クラスの中では無効となり、 致命的エラー C<\N in a character class must be a named character: \N{...}> を発生させます。 =item * =begin original The rules on what is legal for the C<...> in C<\N{...}> have been tightened up so that unless the C<...> begins with an alphabetic character and continues with a combination of alphanumerics, dashes, spaces, parentheses or colons then the warning C is now issued. =end original C<\N{...}> 内の C<...> として有効なものの規則が厳しくなったので、 C<...> が英文字で始まって、英数字、ダッシュ、空白、かっこ、コロンが 引き続くものでない場合、 C 警告が 発生するようになりました。 =item * =begin original The warning C will be issued if the C handler returns a sequence of characters which exceeds the limit of the number of characters that can be used. The message will indicate which characters were used and which were discarded. =end original C 警告は、 C ハンドラが、利用できる文字数の制限を超えた文字シーケンスを 返すときに発生し、 このメッセージは、使われた文字と捨てられた文字を示しています。 =back =back =head2 Changed Diagnostics (変更された診断メッセージ) =begin original A number of existing diagnostic messages have been improved or corrected: =end original 既にある多くの診断メッセージが改良されたり修正されたりしました: =over =item * =begin original A new warning category C allows finer-grained control of warnings around function prototypes. =end original 新しい警告カテゴリ C は、関数プロトタイプの関する警告を より細かい粒度で制御できるようにします。 =begin original The two warnings: =end original 二つの警告: =over =item C =item C =back =begin original have been moved from the C top-level warnings category into a new first-level category, C. These two warnings are currently the only ones emitted during parsing of an invalid/illegal prototype, so one can now use =end original これらは、C トップレベル警告カテゴリから新しい第一レベルカテゴリ C に移動しました。 これら二つの警告は今のところ不正なプロトタイプをパースしたときに 出力される唯一のカテゴリなので、以下のようにすることで no warnings 'illegalproto'; =begin original to suppress only those, but not other syntax-related warnings. Warnings where prototypes are changed, ignored, or not met are still in the C category as before. =end original これらだけを抑制し、その他の文法関係の警告はそのままにできます。 プロトタイプが変更、無視、遭遇しなかったときの警告は今まで通り C カテゴリのままです。 =item * C =begin original It is now possible to change the depth threshold for this warning from the default of 100, by recompiling the F binary, setting the C pre-processor macro C to the desired value. =end original この警告が出る深さの閾値は、デフォルトでは 100 ですが、C プリプロセッサ マクロ C を好みの値に変えて F バイナリを 再コンパイルすることによって、変更できるようになりました。 =item * =begin original C warning is now more precise when reporting illegal characters after _ =end original C 警告は、_ の後の不正な文字を 報告するときにより正確になりました。 =item * =begin original mro merging error messages are now very similar to those produced by L. =end original mro 結合エラーメッセージは、L が生成するものと とても似ているものになりました。 =item * =begin original Amelioration of the error message "Unrecognized character %s in column %d" =end original エラーメッセージ "Unrecognized character %s in column %d" の改善 =begin original Changes the error message to "Unrecognized character %s; marked by E-- HERE after %sE-- HERE near column %d". This should make it a little simpler to spot and correct the suspicious character. =end original このエラーメッセージは "Unrecognized character %s; marked by E-- HERE after %sE-- HERE near column %d" に変更されました。 これによって、怪しい文字の特定と修正が少しだけ簡単になったはずです。 =item * =begin original Perl now explicitly points to C<$.> when it causes an uninitialized warning for ranges in scalar context. =end original スカラコンテキストでの範囲に関する未初期化警告を引き起こすとき、 明示的に C<$.> を示すようになりました。 =item * C は、無効コンテキストで呼び出されると警告するようになりました。 =item * =begin original C-style functions called with too few arguments will now issue the warning C<"Missing argument in %s"> [perl #71000] =end original C 形式の関数呼び出しで引数が足りない場合、警告 C<"Missing argument in %s"> が発生するようになりました。 [perl #71000] =item * =begin original Perl now properly returns a syntax error instead of segfaulting if C, C, or C is used without an argument. =end original C, C, C が引数なしで使われた場合、 セグメンテンションフォールトではなく、正しく文法エラーを 返すようになりました。 =item * =begin original C now fails properly if called without an argument and when no previous file was read. =end original 何もファイルを読み込んでいない状態で C が引数なしで 呼び出された場合、正しく失敗するようになりました。 =begin original C now returns C<-1>, and sets errno to C, thus restoring the 5.8.x behaviour. =end original C は C<-1> を返し、errno に C がセットされます; これにより 5.8.x での振る舞いが再現されました。 =item * =begin original C no longer implicitly unsets fallback on repeated 'use overload' lines. =end original C は繰り返して 'use overload' 行があった場合でも、 暗黙のうちにフォールバックを解除しなくなりました。 =item * =begin original POSIX::strftime() can now handle Unicode characters in the format string. =end original POSIX::strftime() はフォーマット文字列で Unicode 文字が 扱えるようになりました。 =item * =begin original The C category was removed from 5 warnings that should only be in C. =end original C カテゴリだけであるべき 5 個の警告から C カテゴリが 取り除かれました。 =item * =begin original Three fatal C/C error messages have been normalized to C =end original 三つの致命的な C/C エラーメッセージが C に 正規化されました。 =item * =begin original C has been rephrased to be more accurate =end original C はより正確になるように言い換えられました。 =begin original It now reads C and the perldiag documentation has been expanded a bit. =end original 現在は C となり、 perldiag 文書が少し拡張されました。 =item * =begin original Currently, all but the first of the several characters that the C handler may return are discarded when used in a regular expression pattern bracketed character class. If this happens then the warning C will be issued. =end original 現在のところ、C ハンドラが複数の文字を返した場合の先頭以外の 文字は、これが正規表現や大かっこ文字クラスの中で使われたときには 捨てられます。 もしこれが起きると、 C 警告が発生します。 =item * =begin original The warning C will be issued if Perl encounters a C<\N{> but doesn't find a matching C<}>. In this case Perl doesn't know if it was mistakenly omitted, or if "match non-newline" followed by "match a C<{>" was desired. It assumes the latter because that is actually a valid interpretation as written, unlike the other case. If you meant the former, you need to add the matching right brace. If you did mean the latter, you can silence this warning by writing instead C<\N\{>. =end original C 警告は、Perl が C<\N{> に遭遇したけれども 対応する C<}> がない場合に発生します。 この場合、これが間違って省略されたのか、あるいは「非改行にマッチング」の 後に「C<{> にマッチング」を想定しているのかが Perl には分かりません。 他の場合と異なり、後者は実際書いたままのものを有効に解釈できるので、 後者を仮定します。 もし前者を意味していたのなら、対応する右中かっこを追加する必要があります。 もし後者を意味していたのなら、代わりに C<\N\{> と書くことで 警告を黙らせることができます。 =item * =begin original C and C called with numbers smaller than they can reliably handle will now issue the warnings C and C. =end original 確実に扱える値より小さい値で C と C を呼び出すと、 C と C の警告が 出るようになりました。 =back =begin original The following diagnostic messages have been removed: =end original 以下の診断メッセージは削除されました: =over 4 =item * C =item * C =begin original In general this warning it only got produced in conjunction with other warnings, and removing it allowed an ISA lookup optimisation to be added. =end original 一般的に、この警告は他の警告と同時にのみ生成され、これを取り除くことによって ISA 読み出しの最適化が追加できるようになりました。 =item * C =back =head1 Utility Changes (ツールの変更) =over 4 =item * =begin original F now looks in C too, which is a recent addition to gcc's search path. =end original F は、 最近 gcc の検索パスとして追加された、C を見るように なりました。 =item * =begin original F no longer incorrectly treats enum values like macros. It also now handles C++ style comments (C) properly in enums. =end original F は マクロのような enum 値を間違って扱わなくなりました。 また、enum での C++ 形式のコメント (C) を扱うようになりました。 =item * =begin original F now supports C subroutines. Additionally, the debugger now correctly handles proxy constant subroutines, and subroutine stubs. =end original F は C サブルーチンを対応するようになりました。 さらに、デバッガは代理定数サブルーチンとサブルーチンスタブを正しく 扱えるようになりました。 =item * =begin original F now uses C<%Module::CoreList::bug_tracker> to print out upstream bug tracker URLs. If a user identifies a particular module as the topic of their bug report and we're able to divine the URL for its upstream bug tracker, perlbug now provide a message to the user explaining that the core copies the CPAN version directly, and provide the URL for reporting the bug directly to the upstream author. =end original F は、上流のバグトラッカー URL の出力に C<%Module::CoreList::bug_tracker> を使うようになりました。 もしユーザーが送るバグ報告の話題としてあるモジュールがあることが分かり、 そのモジュールの上流のバグトラッカーの URL が分かる場合は、perlbug は、 コアは CPAN バージョンを直接コピーしていることをユーザーに説明する メッセージと、上流の作者に直接バグを報告するための URL を出力します。 =begin original F no longer reports "Message sent" when it hasn't actually sent the message =end original F は、実際にはメッセージを送れなかった場合には "Message sent" と報告しなくなりました。 =item * =begin original F is a new utility for sending non-bug-reports to the authors and maintainers of Perl. Getting nothing but bug reports can become a bit demoralising. If Perl 5.12 works well for you, please try out F. It will make the developers smile. =end original F は、Perl の作者と管理者にバグ報告ではないレポートを送るための 新しいツールです。 バグレポートでしかないものを受け取るのは少しがっかりさせるものに なりつつあります。 もしあなたのところで Perl 5.12 がうまく働いているなら、 F を試してみてください。 開発者を笑顔にすることでしょう。 =item * =begin original Perl's developers have fixed bugs in F having to do with the C operator in list context. Additionally, F no longer generates code that uses the C<$[> variable. =end original Perl の開発者は、C をリストコンテキストで 使わなければならなくなるという F のバグを修正しました。 さらに、F はもはや C<$[> 変数を使ったコードを生成しなくなりました。 =back =head1 Selected Bug Fixes (バグ修正の抜粋) =over 4 =item * =begin original U+0FFFF is now a legal character in regular expressions. =end original U+0FFFF は正規表現で有効な文字となりました。 =item * =begin original pp_qr now always returns a new regexp SV. Resolves RT #69852. =end original pp_qr は常に新しい正規表現 SV を返すようになりました。 RT #69852 を解決しました。 =begin original Instead of returning a(nother) reference to the (pre-compiled) regexp in the optree, use reg_temp_copy() to create a copy of it, and return a reference to that. This resolves issues about Regexp::DESTROY not being called in a timely fashion (the original bug tracked by RT #69852), as well as bugs related to blessing regexps, and of assigning to regexps, as described in correspondence added to the ticket. =end original 命令木の(プリコンパイルされた)正規表現へのリファレンスを返すのではなく、 そのコピーを作成するために reg_temp_copy() を使い、それに対する リファレンスを返します。 これは Regexp::DESTROY が適切なタイミングでで呼び出されないという 問題(元々のバグは RT #69852 で追跡されています)を解決し、 チケットに追加された文章で記述されているような、正規表現の bless と 正規表現への代入に関するバグも解決しました。 =begin original It transpires that we also need to undo the SvPVX() sharing when ithreads cloning a Regexp SV, because mother_re is set to NULL, instead of a cloned copy of the mother_re. This change might fix bugs with regexps and threads in certain other situations, but as yet neither tests nor bug reports have indicated any problems, so it might not actually be an edge case that it's possible to reach. =end original これにより、iスレッドが正規表現 SV のクローンを作るとき、SvPVX() の 共有を取り消す必要もあることがわかります; なぜなら mother_re は mother_re をクローンしたコピーではなく、NULL が セットされるからです。 この変更はその他のある種の状況での正規表現とスレッドに関するバグを 修正するかもしれませんが、未だにテストやバグ報告は何の問題も 示していないので、実際には到達する可能性のある境界条件では ないのかもしれません。 =item * =begin original Several compilation errors and segfaults when perl was built with C<-Dmad> were fixed. =end original perl を C<-Dmad> 付きでコンパイルするとコンパイルエラーや セグメンテーションフォールトが起きていたのを修正しました。 =item * =begin original Fixes for lexer API changes in 5.11.2 which broke NYTProf's savesrc option. =end original 5.11.2 で行われた 字句解析 API の変更が NYTProf の savesrc オプションを 壊していたのを修正しました。 =item * =begin original C<-t> should only return TRUE for file handles connected to a TTY =end original C<-t> は TTY と接続されているファイルハンドルに対してのみ TRUE を 返すべきでした。 =begin original The Microsoft C version of C returns TRUE for all character mode devices, including the F-style "nul" device and printers like "lpt1". =end original The Microsoft C 版の C は、 F 形式の "nul" デバイスや "lpt1" のようなプリンタを含む 全てのキャラクタデバイスに対して TRUE を返します。 =item * =begin original Fixed a regression caused by commit fafafbaf which caused a panic during parameter passing [perl #70171] =end original 引数を渡す間の panic を引き起こす fafafbaf をコミットしたことによる エンバグを修正しました [perl #70171] =item * =begin original On systems which in-place edits without backup files, -i'*' now works as the documentation says it does [perl #70802] =end original バックアップファイルなしでその場で修正するシステムで、 -i'*' が文書に記されているとおりに動作するようになりました。 [perl #70802] =item * =begin original Saving and restoring magic flags no longer loses readonly flag. =end original マジックフラグの保存と復帰で読み込み専用フラグを 失わないようになりました。 =item * =begin original The malformed syntax C (note the missing comma) no longer causes abrupt and total failure. =end original 不正な文法 C (カンマがないことに注意) で、 突然完全に失敗しなくなりました。 =item * =begin original Regular expressions compiled with C literals properly set C<$'> when matching again. =end original C リテラルを使ってコンパイルされた正規表現で、再び マッチングしたときに適切に C<$'> がセットされるようになりました。 =item * =begin original Using named subroutines with C should no longer lead to bus errors [perl #71076] =end original C で名前付きサブルーチンを使ったときに、バスエラーを 引き起こさなくなりました。 [perl #71076] =item * =begin original Numerous bugfixes catch small issues caused by the recently-added Lexer API. =end original 最近追加された語句解析 API によって引き起こされた多くの小さな問題が 修正されました。 =item * =begin original Smart match against C<@_> sometimes gave false negatives. [perl #71078] =end original C<@_> を使ったスマートマッチングが時々間違っていました。 [perl #71078] =item * =begin original C<$@> may now be assigned a read-only value (without error or busting the stack). =end original C<$@> は (エラーやスタック破壊なしに) 読み込み専用値を 代入できるようになりました。 =item * =begin original C called recursively from within an active comparison subroutine no longer causes a bus error if run multiple times. [perl #71076] =end original 動作中の比較サブルーチンの中から C を再帰的に呼び出すと、 複数回実行してもバスエラーが起きなくなりました。[perl #71076] =item * =begin original Tie::Hash::NamedCapture::* will not abort if passed bad input (RT #71828) =end original Tie::Hash::NamedCapture::* は、悪い入力を渡すと中断するようになりました (RT #71828) =item * =begin original @_ and $_ no longer leak under threads (RT #34342 and #41138, also #70602, #70974) =end original @_ と $_ はスレッドでリークしなくなりました (RT #34342 と #41138, また #70602, #70974) =item * =begin original C<-I> on shebang line now adds directories in front of @INC as documented, and as does C<-I> when specified on the command-line. =end original シェバン行での C<-I> は文書通り、コマンドラインで指定した C<-I> と 同様、@INC の先頭に追加されるようになりました。 =item * =begin original C is now fatal when called on non-numeric process identifiers. Previously, an C process identifier would be interpreted as a request to kill process 0, which would terminate the current process group on POSIX systems. Since process identifiers are always integers, killing a non-numeric process is now fatal. =end original C は、非数値プロセス識別子で呼び出されたときには致命的エラーに なるようになりました。 以前は、プロセス識別子として C を渡すと、プロセス 0 を kill すると 解釈され、POSIX システムで現在のプロセスグループが終了していました。 プロセス識別子は常に整数なので、非数値プロセスを kill しようとするのは 致命的エラーとなりました。 =item * =begin original 5.10.0 inadvertently disabled an optimisation, which caused a measurable performance drop in list assignment, such as is often used to assign function parameters from C<@_>. The optimisation has been re-instated, and the performance regression fixed. (This fix is also present in 5.10.1) =end original 5.10.0 では不注意によって最適化が無効化されていたため、 例えば C<@_> から関数の引数への代入でよく使われるような、 リスト代入において目に見えるほどの性能低下を引き起こしていました。 この最適化は再導入され、性能面の退行が修正されました。 (この修正は 5.10.1 でも行われています) =item * =begin original Fixed memory leak on C [RT #53038]. =end original C でのメモリリークが修正されました [RT #53038]。 =item * =begin original Some potential coredumps in PerlIO fixed [RT #57322,54828]. =end original PerlIO でのコアダンプの可能性が修正されました [RT #57322,54828]。 =item * =begin original The debugger now works with lvalue subroutines. =end original デバッガは左辺値サブルーチンでも動作するようになりました。 =item * =begin original The debugger's C command was broken on modules that defined constants [RT #61222]. =end original 定数が定義されたモジュールでは、デバッガの C コマンドが壊れていました [RT #61222]。 =item * =begin original C and string complement could return tainted values for untainted arguments [RT #59998]. =end original C と文字列補完は汚染されていない引数から汚染された値を返すことが ありました [RT #59998]. =item * =begin original The C<-i>I<.suffix> command-line switch now recreates the file using restricted permissions, before changing its mode to match the original file. This eliminates a potential race condition [RT #60904]. =end original C<-i>I<.suffix> コマンドラインオプションは、元のファイルに一致するように モードを変更する前に、制限されたパーミッションを使ってファイルを 再作成します。 これは競合条件の可能性を除去します [RT #60904]。 =item * =begin original On some Unix systems, the value in C<$?> would not have the top bit set (C<$? & 128>) even if the child core dumped. =end original Unix システムによっては、C<$?> の値が、子がコアダンプしたときでも 最上位ビット (C<$? & 128>) がされないことがありました。 =item * =begin original Under some circumstances, C<$^R> could incorrectly become undefined [RT #57042]. =end original 状況によっては、C<$^R> が間違って未定義になりました [RT #57042]。 =item * =begin original In the XS API, various hash functions, when passed a pre-computed hash where the key is UTF-8, might result in an incorrect lookup. =end original XS API で、様々なハッシュ関数において、キーが UTF-8 の時に予め 計算されたハッシュを渡すと、読み出しを間違うことがありました。 =item * =begin original XS code including F before F gave a compile-time error [RT #57176]. =end original F の前に F をインクルードした XS コードでコンパイル時 エラーが発生していました [RT #57176]。 =item * =begin original C<< $object-Eisa('Foo') >> would report false if the package C didn't exist, even if the object's C<@ISA> contained C. =end original C<< $object-Eisa('Foo') >> は、たとえ オブジェクトの C<@ISA> に C を含んでいても、パッケージに C が存在していなければ偽を 返すようになりました。 =item * =begin original Various bugs in the new-to 5.10.0 mro code, triggered by manipulating C<@ISA>, have been found and fixed. =end original 5.10.0 で新規導入された mro コードで、C<@ISA> を操作することによって 引き起こされる様々なバグが発見され、修正されました。 =item * =begin original Bitwise operations on references could crash the interpreter, e.g. C<$x=\$y; $x |= "foo"> [RT #54956]. =end original C<$x=\$y; $x |= "foo"> のような、リファレンスに対するビット単位演算子が インタプリタをクラッシュさせることがありました [RT #54956]。 =item * =begin original Patterns including alternation might be sensitive to the internal UTF-8 representation, e.g. =end original 代替を含むパターンが内部 UTF-8 表現に敏感になっていました; my $byte = chr(192); my $utf8 = chr(192); utf8::upgrade($utf8); $utf8 =~ /$byte|X}/i; # failed in 5.10.0 =item * =begin original Within UTF8-encoded Perl source files (i.e. where C is in effect), double-quoted literal strings could be corrupted where a C<\xNN>, C<\0NNN> or C<\N{}> is followed by a literal character with ordinal value greater than 255 [RT #59908]. =end original UTF8-エンコードされた (つまり C が有効な) Perl ソースファイル内で、 ダブルクォートされたリテラル文字列が、 could be corrupted where a C<\xNN>, C<\0NNN>, C<\N{}> の後に その値が 255 を超えるリテラル文字が続いている場合に、壊れることがありました [RT #59908]。 =item * =begin original C failed to correctly deparse various constructs: C [RT #62428], C [RT #62488], C [RT #62484]. =end original C は様々な構造を逆パースするのに失敗していました: C [RT #62428], C [RT #62488], C [RT #62484]. =item * =begin original Using C with no arguments could corrupt the perl stack. =end original C を引数なしで使うと、perl のスタックが壊れることがありました。 =item * =begin original The block form of C is now specifically trappable by C and C. Previously it was erroneously treated like string C. =end original ブロック形式の C は特別に C と C でトラップ可能に なりました。 以前は間違って文字列の C のように扱われていました。 =item * =begin original In 5.10.0, the two characters C<[~> were sometimes parsed as the smart match operator (C<~~>) [RT #63854]. =end original 5.10.0 では、2 つの文字 C<[~> が時々スマートマッチング演算子 (C<~~>) としてパースされていました [RT #63854]。 =item * =begin original In 5.10.0, the C<*> quantifier in patterns was sometimes treated as C<{0,32767}> [RT #60034, #60464]. For example, this match would fail: =end original 5.10.0 では、パターン中の C<*> 量指定子が時々 C<{0,32767}> として扱われていました[RT #60034, #60464]。 例えば、以下はマッチングに失敗していました: ("ab" x 32768) =~ /^(ab)*$/ =item * =begin original C was limited to a 32 bit segment size on a 64 bit OS [RT #63924]. =end original C は 64 ビット OS で 32 ビットセグメントサイズに制限されていました [RT #63924]。 =item * =begin original Using C or C to exit a C block no longer produces a spurious warning like the following: =end original C ブロックから出るために C や C を使ったときに、 以下のような誤った警告が出力されなくなりました: Exiting given via last at foo.pl line 123 =item * =begin original Assigning a format to a glob could corrupt the format; e.g.: =end original 以下のように、フォーマットからグロブへの代入を行うと、 フォーマットが壊れることがありました: *bar=*foo{FORMAT}; # foo format now bad =item * =begin original Attempting to coerce a typeglob to a string or number could cause an assertion failure. The correct error message is now generated, C>. =end original 型グロブを文字列や数値に変換しようとすると、アサーション失敗が 発生することがありました。 正しいエラーメッセージである C> が 生成されるようになりました。 =item * =begin original Under C, C<-x> was using the wrong access mode. This has been fixed [RT #49003]. =end original C 中に、C<-x> は間違ったアクセスモードを 使っていました。 これは修正されました [RT #49003]。 =item * =begin original C on a tied scalar that returned a Unicode value would not be correct the first time. This has been fixed. =end original Unicode 値を返す tie されたスカラに対する C が、初回は 正しく動作していませんでした。 これは修正されました。 =item * =begin original Using an array C inside in array C could SEGV. This has been fixed. [RT #51636] =end original 配列 C の中で配列 C を使うと SEGV になることがありました。 これは修正されました。 [RT #51636] =item * =begin original A race condition inside C has been identified and fixed. This used to cause various threading issues, including SEGVs. =end original C 内での競合条件が識別され、修正されました。 これは SEGV を含む、様々なスレッドの問題を引き起こしていました。 =item * =begin original In C, the use of C<()> groups in scalar context was internally placing a list on the interpreter's stack, which manifested in various ways, including SEGVs. This is now fixed [RT #50256]. =end original C で、スカラコンテキストで C<()> グループを使うと、内部的に インタプリタのスタックにリストが置かれ、SEGV を含む様々な現象が 起きていました。 これは修正されました [RT #50256]。 =item * =begin original Magic was called twice in C, C<\&$x>, C and C. These have all been fixed. =end original C, C<\&$x>, C, C で、マジックが 2 回 呼び出されていました。 これらは全て修正されました。 =item * =begin original A 5.10.0 optimisation to clear the temporary stack within the implicit loop of C has been reverted, as it turned out to be the cause of obscure bugs in seemingly unrelated parts of the interpreter [commit ef0d4e17921ee3de]. =end original 5.10.0 での、C の暗黙のループ中の一時的なスタックをクリアするという 最適化は差し戻されました; これがインタプリタの無関係な部分での 不明瞭なバグの原因となっていたからです [commit ef0d4e17921ee3de]。 =item * =begin original The line numbers for warnings inside C are now correct. =end original C 内での警告の行番号が正しくなりました。 =item * =begin original The C<..> operator now works correctly with ranges whose ends are at or close to the values of the smallest and largest integers. =end original C<..> 演算子は、どちらかの端が整数の最小値や最大値に近い値でも 正しく動作するようになりました。 =item * =begin original C could lead to segmentation faults on some platforms. This has been fixed [RT #54828]. =end original C は、プラットフォームによってはセグメンテーション フォルトを引き起こすことがありました。 これは修正されました [RT #54828]。 =item * =begin original An off-by-one error meant that C was effectively being executed as C. This has been fixed [RT #53746]. =end original C が実際には C として実行されるという 境界条件のエラーがありました。 これは修正されました [RT #53746]。 =item * =begin original Various leaks associated with named captures in regexes have been fixed [RT #57024]. =end original 正規表現での名前付き捕捉に関連する様々なリークが修正されました [RT #57024]。 =item * =begin original A weak reference to a hash would leak. This was affecting C [RT #56908]. =end original ハッシュへの弱いリファレンスがリークを起こすことがありました。 これは C に影響を与えていました [RT #56908]。 =item * =begin original Using (?|) in a regex could cause a segfault [RT #59734]. =end original 正規表現で (?|) を使うとセグメンテンションフォールトを引き起こすことが ありました [RT #59734]。 =item * =begin original Use of a UTF-8 C within a closure could cause a segfault [RT #61520]. =end original クロージャ内で UTF-8 の C を使うとセグメンテンションフォールトを 引き起こすことがありました [RT #61520]。 =item * =begin original Calling C or otherwise upgrading an SV could result in an unaligned 64-bit access on the SPARC architecture [RT #60574]. =end original C やその他で SV を昇格させると、SPARC アーキテクチャでは アライメントされていない 64-ビットアクセスをする場合がありました [RT #60574]。 =item * =begin original In the 5.10.0 release, C would incorrectly list C<5.10.*> after C<5.8.*>; this affected the C<@INC> search order [RT #67628]. =end original 5.10.0 リリースでは、C は間違って C<5.8.*> の後に C<5.10.*> をリストしていました; これは C<@INC> の検索順に影響を 与えていました [RT #67628]。 =item * =begin original In 5.10.0, C returned a non-tainted value [RT #52552]. =end original 5.10.0 では、C は汚染されていない値を 返していました [RT #52552]。 =item * =begin original In 5.10.0, C and C could produce the fatal error C when printing UTF-8 strings [RT #62666]. =end original 5.10.0 では、C と C で UTF-8 文字列を表示するときに 致命的エラー C が出ることがありました [RT #62666]。 =item * =begin original In the 5.10.0 release, a dynamically created C method might be missed (method cache issue) [RT #60220,60232]. =end original 5.10.0 リリースでは、動的に作成した C メソッドが失われることが ありました (メソッドキャッシュの問題です) [RT #60220,60232]。 =item * =begin original In the 5.10.0 release, a combination of C and C could cause a memory leak [RT #63110]. =end original 5.10.0 リリースでは、C と C の組み合わせで メモリリークを起こすことがありました [RT #63110]。 =item * =begin original C<-C> on the shebang (C<#!>) line is once more permitted if it is also specified on the command line. C<-C> on the shebang line used to be a silent no-op I it was not also on the command line, so perl 5.10.0 disallowed it, which broke some scripts. Now perl checks whether it is also on the command line and only dies if it is not [RT #67880]. =end original shebang (C<#!>) 行 での C<-C> は、コマンドラインでも指定されている場合は 再び許可されるようになりました。 shebang 行での C<-C> は、I<もし> コマンドラインで指定されていなかった 場合には暗黙に no-op となっていました; これは perl 5.10.0 では 不許可となりましたが、これによって動かなくなるスクリプトもありました。 perl はコマンドラインでも指定されているかどうかを調べて、 指定されていないときにだけ die するようになりました [RT #67880]。 =item * =begin original In 5.10.0, certain types of re-entrant regular expression could crash, or cause the following assertion failure [RT #60508]: =end original 5.10.0 で、ある種の再入可能な正規表現によってクラッシュしたり、 以下のアサーション失敗を出力したりすることがありました [RT #60508]: Assertion rx->sublen >= (s - rx->subbeg) + i failed =item * =begin original Perl now includes previously missing files from the Unicode Character Database. =end original 以前は入っていなかった Unicode Character Database からのファイルも 含むようになりました。 =item * =begin original Perl now honors C when opening an anonymous temporary file. =end original Perl は無名一時ファイルを開くときに C を使うようになりました。 =back =head1 Platform Specific Changes (プラットフォーム固有の変更) =begin original Perl is incredibly portable. In general, if a platform has a C compiler, someone has ported Perl to it (or will soon). We're happy to announce that Perl 5.12 includes support for several new platforms. At the same time, it's time to bid farewell to some (very) old friends. =end original Perl はものすごく移植性が高いです。 一般的に、あるプラットフォームに C コンパイラがあれば、誰かが Perl を移植しています (あるいはそのうちに移植します)。 私たちは、Perl 5.12 でいくつかの新しいプラットフォームに対応したことを 喜んでお伝えいたします。 同時に、(とても)古い友人のいくつかに別れの挨拶をする時が来ました。 =head2 New Platforms (新しいプラットフォーム) =over =item Haiku =begin original Perl's developers have merged patches from Haiku's maintainers. Perl should now build on Haiku. =end original Perl の開発者は Haiku 管理者からのパッチをマージしました。 Perl は Haiku でビルドできるようになったはずです。 =item MirOS BSD =begin original Perl should now build on MirOS BSD. =end original Perl は MirOS BSD でビルドできるようになったはずです。 =back =head2 Discontinued Platforms (廃止されたプラットフォーム) =over =item Domain/OS =item MiNT =item Tenon MachTen =back =head2 Updated Platforms (更新されたプラットフォーム) =over 4 =item AIX =over 4 =item * =begin original Removed F for AIX 5L and 6.1. Only C was used from F. =end original AIX 5L と 6.1 のための F が取り除かれました。 C だけが F を使っていました。 =item * =begin original Removed F for AIX 5L and 6.1 if F < 1.8.3-5 is installed. The F is delivered as an optional package with the AIX Toolbox. Unfortunately the versions below 1.8.3-5 are broken. =end original F < 1.8.3-5 がインストールされている場合、 AIX 5L and 6.1 のための F が取り除かれました。 F は AIX Toolbox の追加パッケージとして配布されています。 残念ながらバージョン 1.8.3-5 以前のものは壊れています。 =item * =begin original Hints changes mean that AIX 4.2 should work again. =end original AIX 4.2 で再び動作するようにヒントが変更されました。 =back =item Cygwin =over 4 =item * =begin original Perl now supports IPv6 on Cygwin 1.7 and newer. =end original Cygwin 1.7 以降で IPv6 に対応しました。 =item * =begin original On Cygwin we now strip the last number from the DLL. This has been the behaviour in the cygwin.com build for years. The hints files have been updated. =end original Cygwin においては、DLL から最後の番号を取り除くことにしました。 これは何年間も cygwin.com のビルドの振る舞いとなっています。 ヒントファイルが更新されました。 =back =item Darwin (Mac OS X) =over 4 =item * =begin original Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6), as it's still buggy. =end original まだバグっぽいので、Darwin 10 (Mac OS X 10.6) での be_BY.CP1131 ロケールの テストはスキップするようになりました。 =item * =begin original Correct infelicities in the regexp used to identify buggy locales on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively). =end original Darwin 8 と 9 (それぞれ Mac OS X 10.4 と 10.5) でのバグっぽいロケールを 識別するために使われている正規表現での問題を修正しました。 =back =item DragonFly BSD =over 4 =item * =begin original Fix thread library selection [perl #69686] =end original スレッドライブラリ選択が修正されました。 [perl #69686] =back =item FreeBSD =over 4 =item * =begin original The hints files now identify the correct threading libraries on FreeBSD 7 and later. =end original ヒントファイルは FreeBSD 7 以降での正しいスレッドライブラリを 識別するようになりました。 =back =item Irix =over 4 =item * =begin original We now work around a bizarre preprocessor bug in the Irix 6.5 compiler: C unfortunately goes into K&R mode, but C doesn't. =end original Irix 6.5 コンパイラのプリプロセッサにある奇妙なバグを回避するように なりました: C は残念ながら K&R モードになりますが、C では なりません。 =back =item NetBSD =over 4 =item * =begin original Hints now supports versions 5.*. =end original ヒントがバージョン 5.* に対応しました。 =back =item OpenVMS =over 4 =item * =begin original C<-UDEBUGGING> is now the default on VMS. =end original C<-UDEBUGGING> は VMS でのデフォルトとなりました。 =begin original Like it has been everywhere else for ages and ages. Also make command-line selection of -UDEBUGGING and -DDEBUGGING work in configure.com; before the only way to turn it off was by saying no in answer to the interactive question. =end original 長年をかけて、他のどの場所でも同じようになっています。 また、make コマンドラインでの -UDEBUGGING と -DDEBUGGING は configure.com で動作します; 以前はこれを無効にする方法は対話的質問に no を答えることだけでした。 =item * =begin original The default pipe buffer size on VMS has been updated to 8192 on 64-bit systems. =end original VMS のデフォルトのパイプバッファサイズは、64 ビットシステムでは 8192 に更新されました。 =item * =begin original Reads from the in-memory temporary files of C used to fail if C<$/> was set to a numeric reference (to indicate record-style reads). This is now fixed. =end original C のメモリ内一時ファイルからの読み込みは、 C<$/> が(レコード風読み込みを示すために)数値リファレンスにセットされていると 失敗していました。 これは修正されました。 =item * =begin original VMS now supports C. =end original VMS が C に対応するようになりました。 =item * =begin original Many improvements and cleanups have been made to the VMS file name handling and conversion code. =end original VMS ファイル名の扱いと変換に関するコードに対して多くの改良と整理が 行われました。 =item * =begin original Enabling the C logical name now encodes a POSIX exit status in a VMS condition value for better interaction with GNV's bash shell and other utilities that depend on POSIX exit values. See L for details. =end original 論理名 C を有効にすることで、VMS 条件値を POSIX 返りステータスに変換し、GNV の bash シェルやその他の POSIX 返り値に 依存しているユーティリティとの相互作用を高めます。 詳細については L を参照してください。 =item * =begin original C now detects Unix compatibility mode on VMS. =end original C は VMS の Unix 互換モードを検出するようになりました。 =back =item Stratus VOS =over 4 =item * =begin original Various changes from Stratus have been merged in. =end original Stratus からの様々な変更がマージされました。 =back =item Symbian =over 4 =item * =begin original There is now support for Symbian S60 3.2 SDK and S60 5.0 SDK. =end original Symbian S60 3.2 SDK と S60 5.0 SDK に対応するようになりました。 =back =item Windows =over 4 =item * =begin original Perl 5.12 supports Windows 2000 and later. The supporting code for legacy versions of Windows is still included, but will be removed during the next development cycle. =end original Perl 5.12 は Windows 2000 以降に対応します。 Windows のレガシー版に対応するコードもまだ含まれていますが、 次の開発サイクルで削除される予定です。 =item * =begin original Initial support for building Perl with MinGW-w64 is now available. =end original Perl を MinGW-w64 で Perl をビルドするための初期サポートが 利用可能です。 =item * =begin original F now includes a manifest resource to specify the C settings for Windows Vista and later. Without this setting Windows would treat F as a legacy application and apply various heuristics like redirecting access to protected file system areas (like the "Program Files" folder) to the users "VirtualStore" instead of generating a proper "permission denied" error. =end original F は、Windows Vista 以降のための C 設定を 指定するためのマニフェストリソースを含むようになりました。 この設定なしでは、Windows は F をレガシー アプリケーションとして扱い、("Program Files" フォルダのような) 保護されたファイルシステムエリアへのアクセスを、 適切な "permission denied" エラーを生成するのではなく、 ユーザーの "VirtualStore" にリダイレクトする、と言った、様々な 発見的な動作を適用します。 =begin original The manifest resource also requests the Microsoft Common-Controls version 6.0 (themed controls introduced in Windows XP). Check out the Win32::VisualStyles module on CPAN to switch back to old style unthemed controls for legacy applications. =end original また、マニフェストリソースは Microsoft コモンコントロールバージョン 6.0 (Windows XP で導入されたテーマ対応版) を要求します。 レガシーアプリケーションのための古い形式のテーマ非対応版に 戻すには、CPAN の Win32::VisualStyles モジュールをチェックしてください。 =item * =begin original The C<-t> filetest operator now only returns true if the filehandle is connected to a console window. In previous versions of Perl it would return true for all character mode devices, including F and F. =end original C<-t> ファイルテスト演算子は、ファイルハンドルがコンソールウィンドウに 接続されている場合にのみ真を返します。 以前のバージョンの Perl では、F と F を含む、全ての キャラクタモードデバイスにおいて真を返します。 =item * =begin original The C<-p> filetest operator now works correctly, and the Fcntl::S_IFIFO constant is defined when Perl is compiled with Microsoft Visual C. In previous Perl versions C<-p> always returned a false value, and the Fcntl::S_IFIFO constant was not defined. =end original C<-p> ファイルテスト演算子は正しく動作するようになり、また、 Perl が Microsoft Visual C でコンパイルされたときには Fcntl::S_IFIFO 定数が定義されるようになりました。 以前のバージョンの Perl では C<-p> は常に偽の値を返し、 Fcntl::S_IFIFO 定数は定義されていませんでした。 =begin original This bug is specific to Microsoft Visual C and never affected Perl binaries built with MinGW. =end original このバグは Microsoft Visual C 固有で、MinGW でビルドされた Perl バイナリには影響ありません。 =item * =begin original The socket error codes are now more widely supported: The POSIX module will define the symbolic names, like POSIX::EWOULDBLOCK, and stringification of socket error codes in $! works as well now; =end original ソケットのエラーコードにより広く対応するようになりました: POSIX モジュールは POSIX::EWOULDBLOCK のようなシンボリックな名前を 定義するようになり、$! のソケットエラーコードの文字列化も 動作するようになりました; C:\>perl -MPOSIX -E "$!=POSIX::EWOULDBLOCK; say $!" A non-blocking socket operation could not be completed immediately. =item * =begin original flock() will now set sensible error codes in $!. Previous Perl versions copied the value of $^E into $!, which caused much confusion. =end original flock() は実用的なエラーコードを $! にセットするようになりました。 以前のバージョンの Perl は $^E の値を $! にコピーしていたので、 多くの混乱を引き起こしていました。 =item * =begin original select() now supports all empty Cs more correctly. =end original select() は全ての空 C をより正しく対応するようになりました。 =item * =begin original C<'.\foo'> and C<'..\foo'> were treated differently than C<'./foo'> and C<'../foo'> by C and C [RT #63492]. =end original C と C において、C<'.\foo'> と C<'..\foo'> が C<'./foo'> と C<'../foo'> とは異なって扱われていました [RT #63492]。 =item * =begin original Improved message window handling means that C and C messages will no longer be dropped under race conditions. =end original メッセージウィンドウの扱いが改良され、C と C のメッセージが 競合状態でも欠落しなくなりました。 =item * =begin original Various bits of Perl's build infrastructure are no longer converted to win32 line endings at release time. If this hurts you, please report the problem with the L program included with perl. =end original Perl のビルド基盤のさまざまな部分で、もはやリリース時に win32 用の 行末に変換しなくなりました。 もしこれが問題になる場合は、perl に含まれている L プログラムで 問題を報告してください。 =back =back =head1 Known Problems (既知の問題) =begin original This is a list of some significant unfixed bugs, which are regressions from either 5.10.x or 5.8.x. =end original 以下はいくつかの重要な未修正のバグの一覧で、5.10.x か 5.8.x からの 退行です。 =over 4 =item * =begin original Some CPANPLUS tests may fail if there is a functioning file F<../../cpanp-run-perl> outside your build directory. The failure shouldn't imply there's a problem with the actual functional software. The bug is already fixed in [RT #74188] and is scheduled for inclusion in perl-v5.12.1. =end original F<../../cpanp-run-perl> がビルドディレクトリの外にある場合、 いくつかの CPANPLUS テストが失敗します。 失敗しても、実際のソフトウェアに問題があるというわけではないはずです。 このバグは [RT #74188] で既に修正されていて、perl-v5.12.1 に 含まれる予定です。 =item * =begin original C misbehaves in the presence of a lexical C<$_> (typically introduced by C or implicitly by C). The variable which gets set for each iteration is the package variable C<$_>, not the lexical C<$_> [RT #67694]. =end original C は (典型的には C や C による) レキシカルな C<$_> の存在について振る舞いを間違えていました。 each の反復で設定される変数はレキシカルな C<$_> ではなくパッケージ変数の C<$_> です [RT #67694]。 =begin original A similar issue may occur in other modules that provide functions which take a block as their first argument, like =end original 同様の問題は、以下のように、最初の引数としてブロックを取る関数を提供している その他のモジュールにも発生するかもしれません。 foo { ... $_ ...} list =item * =begin original Some regexes may run much more slowly when run in a child thread compared with the thread the pattern was compiled into [RT #55600]. =end original 正規表現によっては、パターンをコンパイルしたスレッドで実行するのに比べて 子スレッドではとても遅くなることがあります [RT #55600]。 =item * =begin original Things like C<"\N{LATIN SMALL LIGATURE FF}" =~ /\N{LATIN SMALL LETTER F}+/> will appear to hang as they get into a very long running loop [RT #72998]. =end original C<"\N{LATIN SMALL LIGATURE FF}" =~ /\N{LATIN SMALL LETTER F}+/> の ようなものは、とても長い実行ループに入るので、ハングアップしたかのように 見えます [RT #72998]。 =item * =begin original Several porters have reported mysterious crashes when Perl's entire test suite is run after a build on certain Windows 2000 systems. When run by hand, the individual tests reportedly work fine. =end original 何人かの移植担当者が、ある種の Windows 2000 システムでビルドした後 Perl のテストスイート全体を実行すると、なぜかクラッシュすると 報告しています。 手動で実行した場合は、個々のテストは正しく動作します。 =back =head1 Errata (正誤表) =over =item * =begin original This one is actually a change introduced in 5.10.0, but it was missed from that release's perldelta, so it is mentioned here instead. =end original これは実際には 5.10.0 で導入された変更ですが、5.10.0 の perldelta からは 漏れているので、代わりにここで言及します。 =begin original A bugfix related to the handling of the C modifier and C resulted in a change of behaviour between 5.8.x and 5.10.0: =end original C 修飾子と C の扱いに関するバグ修正の結果、5.8.x と 5.10.0 で 振る舞いが変わっています: # matches in 5.8.x, doesn't match in 5.10.0 $re = qr/^bar/; "foo\nbar" =~ /$re/m; =back =head1 Acknowledgements =begin original Perl 5.12.0 represents approximately two years of development since Perl 5.10.0 and contains over 750,000 lines of changes across over 3,000 files from over 200 authors and committers. =end original Perl 5.12.0 は、Perl 5.10.0 以降、200 人以上の作者とコミッタによって、 3,000 以上のファイルに 750,000 行以上の変更を加えて、 ほぼ 2 年間開発されてきました。 =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 5.12.0: =end original Perl は、活気のあるユーザーと開発者のコミュニティのおかげで 20 年を超えて繁栄しています。 以下の人々が、Perl 5.12.0 になるための改良に貢献したことが 分かっています: Aaron Crane, Abe Timmerman, Abhijit Menon-Sen, Abigail, Adam Russell, Adriano Ferreira, Ævar Arnfjörð Bjarmason, Alan Grover, Alexandr Ciornii, Alex Davies, Alex Vandiver, Andreas Koenig, Andrew Rodland, andrew@sundale.net, Andy Armstrong, Andy Dougherty, Jose AUGUSTE-ETIENNE, Benjamin Smith, Ben Morrow, bharanee rathna, Bo Borgerson, Bo Lindbergh, Brad Gilbert, Bram, Brendan O'Dea, brian d foy, Charles Bailey, Chip Salzenberg, Chris 'BinGOs' Williams, Christoph Lamprecht, Chris Williams, chromatic, Claes Jakobsson, Craig A. Berry, Dan Dascalescu, Daniel Frederick Crisman, Daniel M. Quinlan, Dan Jacobson, Dan Kogai, Dave Mitchell, Dave Rolsky, David Cantrell, David Dick, David Golden, David Mitchell, David M. Syzdek, David Nicol, David Wheeler, Dennis Kaarsemaker, Dintelmann, Peter, Dominic Dunlop, Dr.Ruud, Duke Leto, Enrico Sorcinelli, Eric Brine, Father Chrysostomos, Florian Ragwitz, Frank Wiegand, Gabor Szabo, Gene Sullivan, Geoffrey T. Dairiki, George Greer, Gerard Goossen, Gisle Aas, Goro Fuji, Graham Barr, Green, Paul, Hans Dieter Pearcey, Harmen, H. Merijn Brand, Hugo van der Sanden, Ian Goodacre, Igor Sutton, Ingo Weinhold, James Bence, James Mastros, Jan Dubois, Jari Aalto, Jarkko Hietaniemi, Jay Hannah, Jerry Hedden, Jesse Vincent, Jim Cromie, Jody Belka, John E. Malmberg, John Malmberg, John Peacock, John Peacock via RT, John P. Linderman, John Wright, Josh ben Jore, Jos I. Boumans, Karl Williamson, Kenichi Ishigaki, Ken Williams, Kevin Brintnall, Kevin Ryde, Kurt Starsinic, Leon Brocard, Lubomir Rintel, Luke Ross, Marcel Grünauer, Marcus Holland-Moritz, Mark Jason Dominus, Marko Asplund, Martin Hasch, Mashrab Kuvatov, Matt Kraai, Matt S Trout, Max Maischein, Michael Breen, Michael Cartmell, Michael G Schwern, Michael Witten, Mike Giroux, Milosz Tanski, Moritz Lenz, Nicholas Clark, Nick Cleaton, Niko Tyni, Offer Kaye, Osvaldo Villalon, Paul Fenwick, Paul Gaborit, Paul Green, Paul Johnson, Paul Marquess, Philip Hazel, Philippe Bruhat, Rafael Garcia-Suarez, Rainer Tammer, Rajesh Mandalemula, Reini Urban, Renée Bäcker, Ricardo Signes, Ricardo SIGNES, Richard Foley, Rich Rauenzahn, Rick Delaney, Risto Kankkunen, Robert May, Roberto C. Sanchez, Robin Barker, SADAHIRO Tomoyuki, Salvador Ortiz Garcia, Sam Vilain, Scott Lanning, Sébastien Aperghis-Tramoni, Sérgio Durigan Júnior, Shlomi Fish, Simon 'corecode' Schubert, Sisyphus, Slaven Rezic, Smylers, Steffen Müller, Steffen Ullrich, Stepan Kasal, Steve Hay, Steven Schubiger, Steve Peters, Tels, The Doctor, Tim Bunce, Tim Jenness, Todd Rinaldo, Tom Christiansen, Tom Hukins, Tom Wyant, Tony Cook, Torsten Schoenfeld, Tye McQueen, Vadim Konovalov, Vincent Pit, Hio YAMASHINA, Yasuhiro Matsumoto, Yitzchak Scott-Thoennes, Yuval Kogman, Yves Orton, Zefram, Zsban Ambrus =begin original This is woefully incomplete as it's automatically generated from version control history. In particular, it doesn't include the names of the (very much appreciated) contributors who reported issues in previous versions of Perl that helped make Perl 5.12.0 better. For a more complete list of all of Perl's historical contributors, please see the C file in the Perl 5.12.0 distribution. =end original これはバージョンコントロール履歴から自動的に生成しているので、 悲惨なほどに不完全です。 特に、Perl 5.12.0 をよりよくするための助けとなった、以前のバージョンの Perl の問題を報告してくれた(とてもありがたい)貢献者の名前を含んでいません。 全ての Perl の歴史的な貢献者のより完全な一覧はについては、 どうか Perl 5.12.0 配布に含まれている C を参照してください。 =begin original Our "retired" pumpkings Nicholas Clark and Rafael Garcia-Suarez deserve special thanks for their brilliant and substantive ongoing contributions. Nicholas personally authored over 30% of the patches since 5.10.0. Rafael comes in second in patch authorship with 11%, but is first by a long shot in committing patches authored by others, pushing 44% of the commits since 5.10.0 in this category, often after providing considerable coaching to the patch authors. These statistics in no way comprise all of their contributions, but express in shorthand that we couldn't have done it without them. =end original 私たちの「引退した」パンプキングである Nicholas Clark と Rafael Garcia-Suarez は、素晴らしく現実的に継続されている貢献に対して 特別な感謝に値します。 Nicholas は個人的に、5.10.0 以降のパッチの 30% 以上を書いています。 Rafael はパッチの量では 11% で 2 位ですが、他の人が書いたパッチの コミット量では断トツの 1 位で、5.10.0 以降この分野ではコミットの 44% が 彼のものです; これはしばしばパッチ作者への少なからぬ指導の後のものです。 これらの統計資料は彼らの貢献の全てを表すには全く不足していますが、 彼らなしではリリースできなかったことを手短に表現しています。 =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 コミュニティ全体に感謝します。 =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 L. There may also be information at L, the Perl Home Page. =end original もしバグと思われるものを見つけたら、comp.lang.perl.misc ニュースグループに 最近投稿された記事や L にある perl バグ データベースを確認してください。 Perl ホームページ、L にも情報があります。 =begin original If you believe you have an unreported bug, please run the B 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 analyzed by the Perl porting team. =end original もしまだ報告されていないバグだと確信したら、そのリリースに含まれている B プログラムを実行してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。バグレポートは 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 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 original L for a list of issues found after this release, as well as a list of CPAN modules known to be incompatible with this release. =end original L には、このリリース以降に 発見された問題や、このリリースと互換性のないとわかった CPAN モジュールの 一覧があります。 =begin meta Translate: Kentaro Shirakata =end meta =cut