=encoding euc-jp =head1 NAME =begin original perldelta - what is new for perl v5.20.0 =end original perl5200delta - perl v5.20.0 での変更点 =head1 DESCRIPTION =begin original This document describes differences between the 5.18.0 release and the 5.20.0 release. =end original この文書は 5.18.0 リリースと 5.20.0 リリースの変更点を記述しています。 =begin original If you are upgrading from an earlier release such as 5.16.0, first read L, which describes differences between 5.16.0 and 5.18.0. =end original 5.16.0 のような以前のリリースから更新する場合は、まず 5.16.0 と 5.18.0 の違いについて記述している L を読んでください。 =head1 Core Enhancements (コアの拡張) =head2 Experimental Subroutine signatures (実験的なサブルーチンシグネチャ) =begin original Declarative syntax to unwrap argument list into lexical variables. C checks the number of arguments and puts the arguments into lexical variables. Signatures are not equivalent to the existing idiom of C. Signatures are only available by enabling a non-default feature, and generate warnings about being experimental. The syntactic clash with prototypes is managed by disabling the short prototype syntax when signatures are enabled. =end original 引数リストをレキシカル変数に展開するための宣言的な文法です。 C は引数の数をチェックし、引数をレキシカル変数に 設定します。 シグネチャは既にある慣用句である C と 等価ではありません。 シグネチャは非デフォルト機能を有効にしたときにのみ利用可能で、 実験的であるという警告が生成されます。 プロトタイプとの文法的な衝突は、シグネチャが有効の時に短いプロトタイプ文法は 無効にされることで制御されます。 =begin original See L for details. =end original 詳しくは L を参照してください。 =head2 Cs now take a C attribute (C は C 属性を取るようになりました) =begin original When declaring or defining a C, the prototype can now be specified inside of a C attribute instead of in parens following the name. =end original C を宣言または定義するとき、プロトタイプを、名前の後ろのかっこの中ではなく C 属性の内側に指定できるようになりました。 =begin original For example, C could be rewritten as C. =end original 例えば、C は C と書き直せます。 =head2 More consistent prototype parsing (より一貫性のあるプロトタイプのパース) =begin original Multiple semicolons in subroutine prototypes have long been tolerated and treated as a single semicolon. There was one case where this did not happen. A subroutine whose prototype begins with "*" or ";*" can affect whether a bareword is considered a method name or sub call. This now applies also to ";;;*". =end original サブルーチンプロトタイプでの複数のセミコロンは許容されていて、単一の セミコロンとして扱われていました。 これが起きない場合が一つあります。 "*" または ";*" で始まるプロトタイプのサブルーチンは、裸の単語がメソッド名や サブルーチン呼び出しとして扱われるかどうかに影響します。 これは ";;;*" にも適用されるようになりました。 =begin original Whitespace has long been allowed inside subroutine prototypes, so C is equivalent to C, but until now it was stripped when the subroutine was parsed. Hence, whitespace was I allowed in prototypes set by C. Now it is permitted, and the parser no longer strips whitespace. This means C returns the original prototype, whitespace and all. =end original サブルーチンプロトタイプの内側の空白は長い間認められていたので、 C は C と等価ですが、今までこれはサブルーチンが パースされるときには取り除かれていました。 従って、空白は C で設定されているプロトタイプでは I<認められていません> でした。 これは認められるようになり、パーサは空白を取り除かなくなりました。 つまり、C は空白を含む元のプロトタイプそのものを 返すようになりました。 =head2 C now uses a consistent random number generator (C は一貫性のある乱数生成器を使うようになりました) =begin original Previously perl would use a platform specific random number generator, varying between the libc rand(), random() or drand48(). =end original 以前の perl はプラットフォームに固有の乱数生成器を使っており、 libc rand(), random(), drand48() のように様々でした。 =begin original This meant that the quality of perl's random numbers would vary from platform to platform, from the 15 bits of rand() on Windows to 48-bits on POSIX platforms such as Linux with drand48(). =end original つまり、perl の乱数の品質はプラットフォームによって異なり、 Windows での rand() の 15 ビットから drand48() のある Linux のような POSIX プラットフォームでの 48 ビットまで様々でした。 =begin original Perl now uses its own internal drand48() implementation on all platforms. This does not make perl's C cryptographically secure. [perl #115928] =end original perl は全てのプラットフォームで独自の内部の drand48() 実装を 使うようになりました。 これで perl の C が暗号学的に安全になったわけではありません。 [perl #115928] =head2 New slice syntax (新しい slice の文法) =begin original The new C<%hash{...}> and C<%array[...]> syntax returns a list of key/value (or index/value) pairs. See L. =end original 新しい C<%hash{...}> と C<%array[...]> の文法はキー/値 (または インデックス/値)の組のリストを返します。 L を参照してください。 =head2 Experimental Postfix Dereferencing (実験的な接尾辞によるデリファレンス) =begin original When the C feature is in effect, the following syntactical equivalencies are set up: =end original C 機能が有効のとき、以下の文法的等価物が設定されます: =begin original $sref->$*; # same as ${ $sref } # interpolates $aref->@*; # same as @{ $aref } # interpolates $href->%*; # same as %{ $href } $cref->&*; # same as &{ $cref } $gref->**; # same as *{ $gref } =end original $sref->$*; # ${ $sref } と同じ # 変数展開 $aref->@*; # @{ $aref } と同じ # 変数展開 $href->%*; # %{ $href } と同じ $cref->&*; # &{ $cref } と同じ $gref->**; # *{ $gref } と同じ =begin original $aref->$#*; # same as $#{ $aref } =end original $aref->$#*; # $#{ $aref } と同じ =begin original $gref->*{ $slot }; # same as *{ $gref }{ $slot } =end original $gref->*{ $slot }; # *{ $gref }{ $slot } と同じ =begin original $aref->@[ ... ]; # same as @$aref[ ... ] # interpolates $href->@{ ... }; # same as @$href{ ... } # interpolates $aref->%[ ... ]; # same as %$aref[ ... ] $href->%{ ... }; # same as %$href{ ... } =end original $aref->@[ ... ]; # @$aref[ ... ] と同じ # 変数展開 $href->@{ ... }; # @$href{ ... } と同じ # 変数展開 $aref->%[ ... ]; # %$aref[ ... ] と同じ $href->%{ ... }; # %$href{ ... } と同じ =begin original Those marked as interpolating only interpolate if the associated C feature is also enabled. This feature is B and will trigger C-category warnings when used, unless they are suppressed. =end original 「変数展開」とマークされているものは、関連する C 機能も 有効にされている場合にのみ展開されます。 この機能は B<実験的> で、抑制しない限り、使ったときに C カテゴリの警告を引き起こします。 =begin original For more information, consult L. =end original さらなる詳細については、L を参照してください。 =head2 Unicode 6.3 now supported (Unicode 6.3 に対応するようになりました) =begin original Perl now supports and is shipped with Unicode 6.3 (though Perl may be recompiled with any previous Unicode release as well). A detailed list of Unicode 6.3 changes is at L. =end original Perl は Unicode 6.3 に対応し、これと共に出荷されています (しかし、Perl は 任意の以前の Unicode リリースでも再コンパイルできます)。 Unicode 6.3 の変更の詳細な一覧は L にあります。 =head2 New C<\p{Unicode}> regular expression pattern property (新しい C<\p{Unicode}> 正規表現パターン特性) =begin original This is a synonym for C<\p{Any}> and matches the set of Unicode-defined code points 0 - 0x10FFFF. =end original これは C<\p{Any}> の同義語で、Unicode で定義された符号位置 0 - 0x10FFFF の 集合にマッチングします。 =head2 Better 64-bit support (よりよい 64 ビット対応) =begin original On 64-bit platforms, the internal array functions now use 64-bit offsets, allowing Perl arrays to hold more than 2**31 elements, if you have the memory available. =end original 64 ビットプラットフォームでは、内部配列関数は 64 ビットのオフセットを 使うようになったので、メモリがあれば、Perl で 2**31 要素以上の配列を 保持できるようになりました。 =begin original The regular expression engine now supports strings longer than 2**31 characters. [perl #112790, #116907] =end original 正規表現エンジンは 2**31 文字以上の長さの文字列に対応しました。 [perl #112790, #116907] =begin original The functions PerlIO_get_bufsiz, PerlIO_get_cnt, PerlIO_set_cnt and PerlIO_set_ptrcnt now have SSize_t, rather than int, return values and parameters. =end original 関数 PerlIO_get_bufsiz, PerlIO_get_cnt, PerlIO_set_cnt, PerlIO_set_ptrcnt は 返り値と引数に int ではなく SSize_t を使うようになりました。 =head2 C> now works on UTF-8 locales (C> は UTF-8 ロケールで動作するようになりました) =begin original Until this release, only single-byte locales, such as the ISO 8859 series were supported. Now, the increasingly common multi-byte UTF-8 locales are also supported. A UTF-8 locale is one in which the character set is Unicode and the encoding is UTF-8. The POSIX C category operations (case changing (like C, C<"\U">), and character classification (C<\w>, C<\D>, C)) under such a locale work just as if not under locale, but instead as if under C>, except taint rules are followed. Sorting remains by code point order in this release. [perl #56820]. =end original このリリースまで、ISO 8859 のような単一バイトロケールのみが対応していました。 今回、次第に一般的になってきている複数バイト UTF-8 ロケールも対応しました。 UTF-8 ロケールは、文字集合が Unicode でエンコーディングが UTF-8 です。 このロケールでの POSIX C カテゴリの操作 ((C, C<"\U"> のような) 大文字小文字変換と(C<\w>, C<\D>, C のような)文字クラス化) は 単にロケールが有効でないかのように動作しますが、汚染ルールに従う以外は C> が有効であるかのように動作します。 このリリースではソートは符号位置順のままです。 [perl #56820]。 =head2 C> now compiles on systems without locale ability (C> はロケール機能のないシステムでコンパイルできるようになりました) =begin original Previously doing this caused the program to not compile. Within its scope the program behaves as if in the "C" locale. Thus programs written for platforms that support locales can run on locale-less platforms without change. Attempts to change the locale away from the "C" locale will, of course, fail. =end original 以前はこれをするとプログラムがコンパイルされませんでした。 そのスコープの中ではプログラムは "C" ロケールのように振る舞います。 従ってロケールに対応しているプラットフォームのために書かれたプログラムは ロケールのないプラットフォームでも変更なしで動作します。 ロケールを "C" ロケールから変えようとすると、もちろん失敗します。 =head2 More locale initialization fallback options (さらなるロケール初期化フォールバックオプション) =begin original If there was an error with locales during Perl start-up, it immediately gave up and tried to use the C<"C"> locale. Now it first tries using other locales given by the environment variables, as detailed in L. For example, if C and C are both set, and using the C locale fails, Perl will now try the C locale, and only if that fails, will it fall back to C<"C">. On Windows machines, Perl will try, ahead of using C<"C">, the system default locale if all the locales given by environment variables fail. =end original Perl 起動時にロケールでエラーがあると、すぐに諦めて C<"C"> ロケールを 使おうとしていました。 これは、L で詳しく書かれているように環境変数によって 指定されたその他のロケールを使おうとするようになりました。 例えば、C と C の両方が設定されていて、C ロケールの 使用に失敗すると、Perl は C ロケールを使うことを試みるようになり、 それが失敗した場合にのみ C<"C"> にフォールバックします。 Windows マシンでは、環境変数で指定された全てのロケールが失敗すると、 C<"C"> を使う前に、システムデフォルトのロケールを試みます。 =head2 C<-DL> runtime option now added for tracing locale setting (C<-DL> 実行時オプションがロケール設定のトレースに追加されました) =begin original This is designed for Perl core developers to aid in field debugging bugs regarding locales. =end original これは、Perl コア開発者がロケールに関するバグをデバッグする助けになるように 設計されています。 =head2 B<-F> now implies B<-a> and B<-a> implies B<-n> (B<-F> は B<-a> を、B<-a> は B<-n> を暗黙に指定するようになりました) =begin original Previously B<-F> without B<-a> was a no-op, and B<-a> without B<-n> or B<-p> was a no-op, with this change, if you supply B<-F> then both B<-a> and B<-n> are implied and if you supply B<-a> then B<-n> is implied. =end original 以前は B<-a> なしの B<-F> は効果なしで、B<-n> または B<-p> なしの B<-a> も 効果なしでした; この変更により、B<-F> を指定すると B<-a> と B<-n> が暗黙に 指定され、B<-a> を指定すると B<-n> が暗黙に指定されます。 =begin original You can still use B<-p> for its extra behaviour. [perl #116190] =end original 追加の振る舞いのために B<-p> を使うこともできます。 [perl #116190] =head2 $a and $b warnings exemption ($a と $b は警告を免れるようになりました) =begin original The special variables $a and $b, used in C, are now exempt from "used once" warnings, even where C is not used. This makes it easier for CPAN modules to provide functions using $a and $b for similar purposes. [perl #120462] =end original C で使われる特殊変数 $a と $b は、例え C が使われていなくても "used once" 警告を免れるようになりました。 これにより、CPAN モジュールが同様の目的で $a と $b を使う関数を提供するのが より容易になります。 [perl #120462] =head1 Security (セキュリティ) =head2 Avoid possible read of free()d memory during parsing (パース中に free() されたメモリを読み込む可能性をなくしました) =begin original It was possible that free()d memory could be read during parsing in the unusual circumstance of the Perl program ending with a heredoc and the last line of the file on disk having no terminating newline character. This has now been fixed. =end original ヒヤドキュメントで終わっていてファイルの最後の行が改行文字で 終端されていないという普通でない状況の Perl プログラムのパース中に、 free() されたメモリが読み込まれる可能性がありました。 これは修正されました。 =head1 Incompatible Changes (互換性のない変更) =head2 C can no longer be used to call subroutines (C はサブルーチン呼び出しに使えなくなりました) =begin original The C form has resulted in a deprecation warning since Perl v5.0.0, and is now a syntax error. =end original C 形式は Perl v5.0.0 から廃止予定警告が出ていましたが、 文法エラーになりました。 =head2 Quote-like escape changes (クォート風エスケープの変更) =begin original The character after C<\c> in a double-quoted string ("..." or qq(...)) or regular expression must now be a printable character and may not be C<{>. =end original ダブルクォート文字列 ("..." や qq(...)) の中の C<\c> の後の文字は、C<{> 以外の 表示文字でなければならなくなりました。 =begin original A literal C<{> after C<\B> or C<\b> is now fatal. =end original C<\B> または C<\b> の後のリテラルな C<{> は致命的になりました。 =begin original These were deprecated in perl v5.14.0. =end original これらは perl v5.14.0 から廃止予定になっています。 =head2 Tainting happens under more circumstances; now conforms to documentation (汚染はより多くの状況で起こるようになりました; 文書に従うようになりました) =begin original This affects regular expression matching and changing the case of a string (C, C<"\U">, I.) within the scope of C. The result is now tainted based on the operation, no matter what the contents of the string were, as the documentation (L, L) indicates it should. Previously, for the case change operation, if the string contained no characters whose case change could be affected by the locale, the result would not be tainted. For example, the result of C on an empty string or one containing only above-Latin1 code points is now tainted, and wasn't before. This leads to more consistent tainting results. Regular expression patterns taint their non-binary results (like C<$&>, C<$2>) if and only if the pattern contains elements whose matching depends on the current (potentially tainted) locale. Like the case changing functions, the actual contents of the string being matched now do not matter, whereas formerly it did. For example, if the pattern contains a C<\w>, the results will be tainted even if the match did not have to use that portion of the pattern to succeed or fail, because what a C<\w> matches depends on locale. However, for example, a C<.> in a pattern will not enable tainting, because the dot matches any single character, and what the current locale is doesn't change in any way what matches and what doesn't. =end original これは、C スコープ内での正規表現マッチングと文字列の 大文字小文字変換 (C, C<"\U"> など) に影響します。 結果は、文書 (L, L) が示しているように、 文字列の内容に関わらず、操作を基にして汚染されるようになりました。 以前は、大文字小文字変換操作については、ロケールによって影響を受けるかも 知れない大文字小文字変換が行われる文字が文字列に含まれていないときは、 結果は汚染されていませんでした。 例えば、空文字列や、Latin1 以上の符号位置のみが含まれている文字列に対する C の結果は、以前は汚染されていませんでしたが、 汚染されるようになりました。 これにより、より一貫性のある汚染結果となります。 正規表現パターンは、(C<$&>, C<$2> のような) 非 2 値の結果について、 パターンに(汚染されているかも知れない)現在のロケールに依存するマッチングを 含んでいる場合にのみ、汚染します。 大文字小文字変換関数のように、マッチングされる文字列の実際の内容は、 以前は関係していましたが、関係なくなりました。 例えば、パターンに C<\w> が含まれている場合、たとえマッチングがパターンの 一部が成功したかどうかを使う必要がなくても、結果は汚染されます; なぜなら C<\w> がマッチングするものはロケールに依存するからです。 しかし、例えば、パターン中の C<.> は汚染を有効にしません; なぜならドットは 任意の単一文字にマッチングし、現在のロケールは何にマッチングし何に マッチングしないかに影響を与えないからです。 =head2 C<\p{}>, C<\P{}> matching has changed for non-Unicode code points. (非 Unicode 符号位置に対する C<\p{}>, C<\P{}> マッチングが変更されました) =begin original C<\p{}> and C<\P{}> are defined by Unicode only on Unicode-defined code points (C through C). Their behavior on matching these legal Unicode code points is unchanged, but there are changes for code points C<0x110000> and above. Previously, Perl treated the result of matching C<\p{}> and C<\P{}> against these as C, which translates into "false". For C<\P{}>, this was then complemented into "true". A warning was supposed to be raised when this happened. However, various optimizations could prevent the warning, and the results were often counter-intuitive, with both a match and its seeming complement being false. Now all non-Unicode code points are treated as typical unassigned Unicode code points. This generally is more Do-What-I-Mean. A warning is raised only if the results are arguably different from a strict Unicode approach, and from what Perl used to do. Code that needs to be strictly Unicode compliant can make this warning fatal, and then Perl always raises the warning. =end original C<\p{}> と C<\P{}> は Unicode が定義した符号位置 (C から C) のみに対して Unicode によって定義されています。 正当な Unicode 符号位置に対するマッチングの振る舞いに変更はありませんが、 C<0x110000> 以上の符号位置には変更があります。 以前は、Perl はこれらに対する C<\p{}> や C<\P{}> のマッチングは C として扱い、「偽」に解釈していました。 C<\P{}> については、これは「真」に補完されてました。 これが起きると警告が発生すると想定されていました。 しかし、様々な最適化がこの警告を妨げることがあり、結果はしばしば直感に反して、 マッチングとその補完の両方で偽になっていました。 全ての非 Unicode 符号位置は典型的な未割り当て Unicode 符号位置として 扱われるようになりました。 これは一般的には、より空気を読むようになります。 警告は、厳密な Unicode の手法と Perl が行っていた手法で結果が明らかに 異なる場合にのみ発生します。 厳密に Unicode に準拠する必要があるコードではこの警告を致命的にでき、 それから Perl は常に警告を発生させます。 =begin original Details are in L. =end original 詳細は L にあります。 =head2 C<\p{All}> has been expanded to match all possible code points (C<\p{All}> は全ての可能性のある符号位置にマッチングするように拡張されました) =begin original The Perl-defined regular expression pattern element C<\p{All}>, unused on CPAN, used to match just the Unicode code points; now it matches all possible code points; that is, it is equivalent to C. Thus C<\p{All}> is no longer synonymous with C<\p{Any}>, which continues to match just the Unicode code points, as Unicode says it should. =end original Perl が定義した、CPAN で使われていない正規表現パターン要素 C<\p{All}> は、 単に Unicode 符号位置とマッチングするために使われていました; これは 全ての符号位置にマッチングするようになりました; つまり、これは C と 等価です。 従って、C<\p{All}> はもはや、Unicode が言っているように単に Unicode 符号位置に マッチングする C<\p{Any}> の別名ではありません。 =head2 Data::Dumper's output may change (Data::Dumper の出力が変わる可能性があります) =begin original Depending on the data structures dumped and the settings set for Data::Dumper, the dumped output may have changed from previous versions. =end original ダンプされるデータ構造と Data::Dumper の設定に依存して、ダンプされた 出力は以前のバージョンと変わる可能性があります。 =begin original If you have tests that depend on the exact output of Data::Dumper, they may fail. =end original Data::Dumper の正確な出力に依存したテストがある場合、失敗するかもしれません。 =begin original To avoid this problem in your code, test against the data structure from evaluating the dumped structure, instead of the dump itself. =end original この問題を避けるためには、ダンプそのものではなく、ダンプされた構造を 評価したデータ構造に対してテストしてください。 =head2 Locale decimal point character no longer leaks outside of S> scope (ロケールの小数点文字は S> のスコープの外側にリークしなくなりました) =begin original This is actually a bug fix, but some code has come to rely on the bug being present, so this change is listed here. The current locale that the program is running under is not supposed to be visible to Perl code except within the scope of a S>. However, until now under certain circumstances, the character used for a decimal point (often a comma) leaked outside the scope. If your code is affected by this change, simply add a S>. =end original これは実際にはバグ修正ですが、このバグが存在していることに依存している コードがあるので、この変更はここに書かれています。 プログラムが実行されている現在のロケールは、S> スコープの 内側でない限り Perl コードから見えないことになっています。 しかし、今まで一部の状況では、小数点に使われる文字 (しばしばカンマ) は スコープの外側にリークしていました。 コードがこの変更によって影響を受ける場合は、単に S> を 加えてください。 =head2 Assignments of Windows sockets error codes to $! now prefer F values over WSAGetLastError() values (Windows ソケットのエラーコードの $! への代入は WSAGetLastError() の値よりも F の値を使うようになりました) =begin original In previous versions of Perl, Windows sockets error codes as returned by WSAGetLastError() were assigned to $!, and some constants such as ECONNABORTED, not in F in VC++ (or the various Windows ports of gcc) were defined to corresponding WSAE* values to allow $! to be tested against the E* constants exported by L and L. =end original 以前のバージョンの Perl では、WSAGetLastError() から返された Windows の ソケットエラーコードは $! に代入され、VC++ (および gcc の様々な Windows 版) の F にない ECONNABORTED のような一部の定数は、$! が L と L によってエクスポートされている E* 定数に対してテスト出来るように、 対応する WSAE* の値として定義されていました。 =begin original This worked well until VC++ 2010 and later, which introduced new E* constants with values E 100 into F, including some being (re)defined by perl to WSAE* values. That caused problems when linking XS code against other libraries which used the original definitions of F constants. =end original これは、perl によって WSAE* の値に(再)定義されている部分を含む、E 100 の 値を持つ新しい E* 定数が F 導入された VC++ 2010 まではうまく 動作していました。 これは、XS コードを、F 定数の本来の定義を使っている他のライブラリと リンクするときに問題を引き起こします。 =begin original To avoid this incompatibility, perl now maps WSAE* error codes to E* values where possible, and assigns those values to $!. The E* constants exported by L and L are updated to match so that testing $! against them, wherever previously possible, will continue to work as expected, and all E* constants found in F are now exported from those modules with their original F values. =end original この非互換性を避けるために、perl は、可能なところでは WSAE* エラーコードを E* 値にマッピングして、その値を $! に代入します。 L および L からエクスポートされる E* 定数は、$! とのテストが、 以前可能であったかどうかに関わらず、想定通りに動作し続けるように更新され、 F にある全てのl E* 定数は、これらのモジュールから、元の F の 値でエクスポートされるようになりました。 =begin original In order to avoid breakage in existing Perl code which assigns WSAE* values to $!, perl now intercepts the assignment and performs the same mapping to E* values as it uses internally when assigning to $! itself. =end original WSAE* の値を $! に代入している既存の Perl コードが壊れるのを防ぐために、 perl は代入に介入して、$! 自身に代入するときに内部で使われるのと同じように E* へのマッピングを行います。 =begin original However, one backwards-incompatibility remains: existing Perl code which compares $! against the numeric values of the WSAE* error codes that were previously assigned to $! will now be broken in those cases where a corresponding E* value has been assigned instead. This is only an issue for those E* values E 100, which were always exported from L and L with their original F values, and therefore could not be used for WSAE* error code tests (e.g. WSAEINVAL is 10022, but the corresponding EINVAL is 22). (E* values E 100, if present, were redefined to WSAE* values anyway, so compatibility can be achieved by using the E* constants, which will work both before and after this change, albeit using different numeric values under the hood.) =end original しかし、後方非互換性が一つ残っています: 以前 $! に代入されていた WSAE* エラーコードの数値と $! を比較する既存の Perl コードは、代わりに 対応する E* 値が代入される場合に壊れます。 これは、E 100 の E* 値にのみ問題になります; これは L と L から常に元の F の値から エクスポートされるので、WSAE* エラーコードのテストには使えません (例えば WSAEINVAL は 10022 ですが、対応する EINVAL は 22 です)。 (E 100 である E* 値がもしあれば、どちらにしろ WSAE* 値に再定義されるので、 互換性は E* 定数を使うことで達成され、内部で異なった数値が 使われていたとしても、この変更の前後両方で動作します。) =head2 Functions C and C have been removed (関数 C と C は削除されました) =begin original These two functions, undocumented, unused in CPAN, and problematic, have been removed. =end original これら二つの、文書化されておらず、CPAN で使われておらず、問題のある関数は 削除されました。 =head1 Deprecations (廃止予定) =head2 The C character class (C 文字クラス) =begin original The C regular expression character class is deprecated. From perl 5.22 onwards it will generate a warning, and from perl 5.24 onwards it will be a regular expression compiler error. If you need to examine the individual bytes that make up a UTF8-encoded character, then use C on the string (or a copy) first. =end original C 正規表現文字クラスは廃止予定です。 perl 5.22 以降これは警告を生成し、perl 5.24 以降これは正規表現コンパイラの エラーになります。 UTF8 エンコードされた文字を装っている個々のバイトを調べる必要がある場合は、 文字列(またはそのコピー)に対してまず C を使ってください。 =head2 Literal control characters in variable names (変数名のリテラル制御文字) =begin original This deprecation affects things like $\cT, where \cT is a literal control (such as a C or C character) in the source code. Surprisingly, it appears that originally this was intended as the canonical way of accessing variables like $^T, with the caret form only being added as an alternative. =end original この廃止予定は、(C や C 文字のような) $\cT (\cT は ソースコード中のリテラルな制御文字) のようなものに影響します。 驚くべきことに、本来これは $^T のような、キャレット形式のみが代替策として 追加されている変数にアクセスする正当な方法を意図していたようです。 =begin original The literal control form is being deprecated for two main reasons. It has what are likely unfixable bugs, such as $\cI not working as an alias for $^I, and their usage not being portable to non-ASCII platforms: While $^T will work everywhere, \cT is whitespace in EBCDIC. [perl #119123] =end original リテラル制御文字形式は主に二つの理由で廃止予定です。 これには、$\cI が $^I の別名として動作しないといったおそらく修正できない バグがあり、またこれらの使用は非 ASCII プラットフォームで移植性がありません: $^T はどこでも動作する一方、\cT は EBCDIC では空白です。 [perl #119123] =head2 References to non-integers and non-positive integers in C<$/> (C<$/> の、整数でなかったり正の整数でないリファレンス) =begin original Setting C<$/> to a reference to zero or a reference to a negative integer is now deprecated, and will behave B as though it was set to C. If you want slurp behavior set C<$/> to C explicitly. =end original C<$/> をゼロへのリファレンスや負数へのリファレンスに設定するのは 廃止予定になり、C に設定されたのと B<正確に> 同じように振る舞います。 吸い込みの振る舞いが必要なら、C<$/> に明示的に C を設定してください。 =begin original Setting C<$/> to a reference to a non integer is now forbidden and will throw an error. Perl has never documented what would happen in this context and while it used to behave the same as setting C<$/> to the address of the references in future it may behave differently, so we have forbidden this usage. =end original C<$/> に非整数へのリファレンスを設定するのは禁止されることになり、エラーが 投げられます。 Perl がこの文脈で何が起こるかを文書化されたことはなく、C<$/> にリファレンスの アドレスを設定したのと同じように振る舞っていた一方、将来異なった振る舞いを するかもしれないので、この使用法を禁止することにしました。 =head2 Character matching routines in POSIX (POSIX の文字マッチングルーチン) =begin original Use of any of these functions in the C module is now deprecated: C, C, C, C, C, C, C, C, C, C, and C. The functions are buggy and don't work on UTF-8 encoded strings. See their entries in L for more information. =end original C モジュールの以下の関数の使用は廃止予定になりました: C, C, C, C, C, C, C, C, C, C, and C。 これらの関数はバグがあって、UTF-8 エンコードされた文字列では動作しません。 さらなる情報については L のそれぞれのエントリを参照してください。 =begin original A warning is raised on the first call to any of them from each place in the code that they are called. (Hence a repeated statement in a loop will raise just the one warning.) =end original 警告は、これらが呼び出されたコードの位置それぞれについて最初の呼び出しで 発生します。 (従って、ループ中で繰り返し呼び出されても一回だけ警告が発生します。) =head2 Interpreter-based threads are now I (インタプリタベースのスレッドは I<非推奨> になりました) =begin original The "interpreter-based threads" provided by Perl are not the fast, lightweight system for multitasking that one might expect or hope for. Threads are implemented in a way that make them easy to misuse. Few people know how to use them correctly or will be able to provide help. =end original Perl によって提供されている「インタプリタベースのスレッド」は、想定されたり 望まれたりしているかもしれないような、マルチタスクのための高速で軽量な システムではありません。 スレッドは、誤用しやすい方法で実装されています。 これを正しく使う方法を知っている人や、助けを提供できる人はほとんどいません。 =begin original The use of interpreter-based threads in perl is officially L. =end original perl でのインタプリタベースのスレッドは公式に L<非推奨|perlpolicy/discouraged> です。 =head2 Module removals (モジュールの削除) =begin original The following modules will be removed from the core distribution in a future release, and will at that time need to be installed from CPAN. Distributions on CPAN which require these modules will need to list them as prerequisites. =end original 以下のモジュールは将来のリリースのコア配布から削除される予定で、 その時点で CPAN からインストールする必要があるようになります。 これらのモジュールが必要な CPAN 配布はこれらを必要条件に指定する必要が あります。 =begin original The core versions of these modules will now issue C<"deprecated">-category warnings to alert you to this fact. To silence these deprecation warnings, install the modules in question from CPAN. =end original このことを知らせるために、これらのモジュールのコア版は C<"deprecated"> カテゴリ警告が出るようになります。 この廃止予定警告を黙らせるには、問題のモジュールを CPAN から インストールしてください。 =begin original Note that the planned removal of these modules from core does not reflect a judgement about the quality of the code and should not be taken as a suggestion that their use be halted. Their disinclusion from core primarily hinges on their necessity to bootstrapping a fully functional, CPAN-capable Perl installation, not on concerns over their design. =end original これらのモジュールのコアからの削除計画は、コードの品質に関する判定を 反映したものではなく、これらの使用を中止することを推奨していると 受け取るべきでないことに注意してください。 これらのコアからの除去は、その設計を考慮したものではなく、完全な機能の CPAN が利用可能な Perl のインストールをブートストラップするために必要か どうかで決められています。 =over =item L and its associated CGI:: packages (L と関連する CGI:: パッケージ) =item L =item L =item L and its associated Module::Build:: packages (L と関連する Module::Build:: パッケージ) =back =head2 Utility removals (ユーティリティの削除) =begin original The following utilities will be removed from the core distribution in a future release, and will at that time need to be installed from CPAN. =end original 以下のユーティリティは、将来のリリースでコア配布から取り除かれる予定で、その 時点から CPAN からインストールする必要があります。 =over 4 =item L =item L =item L =back =head1 Performance Enhancements (性能改善) =over 4 =item * =begin original Perl has a new copy-on-write mechanism that avoids the need to copy the internal string buffer when assigning from one scalar to another. This makes copying large strings appear much faster. Modifying one of the two (or more) strings after an assignment will force a copy internally. This makes it unnecessary to pass strings by reference for efficiency. =end original あるスカラから別のスカラに代入するときに内部文字列バッファを コピーする必要を避けるための新しいコピーオンライト機構が導入されました。 これにより大きな文字列のコピーが遥かに高速になりました。 代入の後で二つ(またはそれ以上)の文字列の一つを修正すると内部で強制的に コピーされます。 これにより、効率のために文字列をリファレンスで渡す必要がなくなります。 =begin original This feature was already available in 5.18.0, but wasn't enabled by default. It is the default now, and so you no longer need build perl with the F argument: =end original この機能は既に 5.18.0 から利用可能でしたが、デフォルトでは 有効ではありませんでした。 今回からデフォルトになったので、もはや以下のように F 引数に 指定して perl をビルドする必要はありません: -Accflags=-DPERL_NEW_COPY_ON_WRITE =begin original It can be disabled (for now) in a perl build with: =end original これは(今回から)perl ビルド時に無効にできます: -Accflags=-DPERL_NO_COW =begin original On some operating systems Perl can be compiled in such a way that any attempt to modify string buffers shared by multiple SVs will crash. This way XS authors can test that their modules handle copy-on-write scalars correctly. See L for detail. =end original 一部のオペレーティングシステムでは、複数の SV で共有されている文字列バッファを 変更しようとするとクラッシュするような形で Perl をコンパイルできます。 この方法で XS 作者は自分のモジュールがコピーオンライトスカラを正しく 扱えることをテストできます。 詳しくは L を参照してください。 =item * =begin original Perl has an optimizer for regular expression patterns. It analyzes the pattern to find things such as the minimum length a string has to be to match, etc. It now better handles code points that are above the Latin1 range. =end original Perl は正規表現パターンのための最適化器を持っています。 これは、文字列がマッチングするための最小の長さと行ったものを探すために パターンを解析します。 これが Latin1 の範囲を超えた符号位置をよりよくあつかえるようになりました。 =item * =begin original Executing a regex that contains the C<^> anchor (or its variant under the C flag) has been made much faster in several situations. =end original C<^> アンカー (またはその 変形である C フラグ) を含む正規表現の実行が、 いくつかの状況でとても早くなりました。 =item * =begin original Precomputed hash values are now used in more places during method lookup. =end original 事前計算されたハッシュ値は、メソッド検索中のより多くの場所で 使われるようになりました。 =item * =begin original Constant hash key lookups (C<$hash{key}> as opposed to C<$hash{$key}>) have long had the internal hash value computed at compile time, to speed up lookup. This optimisation has only now been applied to hash slices as well. =end original 定数ハッシュキーの検索 (C<$hash{$key}> ではなく C<$hash{key}>) は、検索を 高速化するために、長い間コンパイル時に計算した内部ハッシュ値を使っていました。 この最適化はハッシュスライスにも適用されるようになりました。 =item * =begin original Combined C and C operators in void context, like those generated for C<< unless ($a && $b) >> and C<< if ($a || b) >> now short circuit directly to the end of the statement. [perl #120128] =end original C<< unless ($a && $b) >> や C<< if ($a || b) >> のような、無効コンテキストでの C と C 演算子の組み合わせは、文の末尾への直接の短絡となりました。 [perl #120128] =item * =begin original In certain situations, when C is the last statement in a subroutine's main scope, it will be optimized out. This means code like: =end original 一部の状況で、C がサブルーチンのメインスコープの最後の文のとき、 最適化して削除されます。 つまり、以下のようなコードは: sub baz { return $cat; } =begin original will now behave like: =end original 以下のように振る舞い: sub baz { $cat; } =begin original which is notably faster. =end original 特に高速になります。 [perl #120765] =item * =begin original Code like: =end original 以下のようなコードは: my $x; # or @x, %x my $y; =begin original is now optimized to: =end original 以下のように最適化されます: my ($x, $y); =begin original In combination with the L, this means longer uninitialized my variable statements are also optimized, so: =end original L との 組み合わせで、未初期化 my 変数文も最適化されるので: my $x; my @y; my %z; =begin original becomes: =end original は以下のようになります: my ($x, @y, %z); [perl #121077] =item * =begin original The creation of certain sorts of lists, including array and hash slices, is now faster. =end original 配列とハッシュのスライスを含む、ある種のリストの作成がより速くなりました。 =item * =begin original The optimisation for arrays indexed with a small constant integer is now applied for integers in the range -128..127, rather than 0..255. This should speed up Perl code using expressions like C<$x[-1]>, at the expense of (presumably much rarer) code using expressions like C<$x[200]>. =end original 小さい整数定数のインデックスの配列の最適化は、0.255 ではなく -128..127 の 範囲の整数に適用されるようになりました。 これにより、(おそらく遥かに稀な) C<$x[200]> のような式を使ったコードが 遅くなる代わりに、C<$x[-1]> のような Perl コードは高速化します。 =item * =begin original The first iteration over a large hash (using C or C) is now faster. This is achieved by preallocating the hash's internal iterator state, rather than lazily creating it when the hash is first iterated. (For small hashes, the iterator is still created only when first needed. The assumption is that small hashes are more likely to be used as objects, and therefore never allocated. For large hashes, that's less likely to be true, and the cost of allocating the iterator is swamped by the cost of allocating space for the hash itself.) =end original 大きなハッシュに対する (C や C を使った) 最初の反復が より速くなりました。 これは、ハッシュの内部反復子状態を、ハッシュが最初に反復したときに 遅延して作るのではなく、予め割り当てることで達成されます。 (小さいハッシュでは、反復子はやはり最初に必要になったときに作られます。 小さいハッシュは、決して割り当てられないオブジェクトとして使われる可能性が 高いという仮定をしています。 大きいハッシュではこれが真である可能性はより低く、反復子を割り当てるコストは ハッシュ自身のための場所を割り当てるコストに飲み込まれます。) =item * =begin original When doing a global regex match on a string that came from the C or CE> operator, the data is no longer copied unnecessarily. [perl #121259] =end original C または CE> 演算子から来た文字列に対してグローバルな 正規表現マッチングが行われるとき、もはやデータは不必要に コピーされなくなりました。 [perl #121259] =item * =begin original Dereferencing (as in C<$obj-E[0]> or C<$obj-E{k}>) is now faster when C<$obj> is an instance of a class that has overloaded methods, but doesn't overload any of the dereferencing methods C<@{}>, C<%{}>, and so on. =end original (C<$obj-E[0]> や C<$obj-E{k}> などでの) デリファレンスは、 C<$obj> がオーバーロードされたメソッドを持つクラスのインスタンスだけれども、 C<@{}> や C<%{}> などのデリファレンスメソッドはオーバーロードされていないときに より速くなりました。 =item * =begin original Perl's optimiser no longer skips optimising code that follows certain C expressions (including those with an apparent infinite loop). =end original Perl の最適化器は、ある種の C 式 (明らかな無限ループを含みます)で 最適化コードを飛ばさなくなりました。 =item * =begin original The implementation now does a better job of avoiding meaningless work at runtime. Internal effect-free "null" operations (created as a side-effect of parsing Perl programs) are normally deleted during compilation. That deletion is now applied in some situations that weren't previously handled. =end original 実行時に無意味な作業を避けるためによりよい処理をするようになりました。 内部の効果がない "null" 操作 (Perl プログラムのパースの副作用として 作られます) は普通コンパイル時に削除されます。 この削除は、以前は扱われていなかった一部の状況でも適用されるようになりました。 =item * =begin original Perl now does less disk I/O when dealing with Unicode properties that cover up to three ranges of consecutive code points. =end original 連続した三つまでの範囲の符号位置に対応する Unicode 特性を扱うときの ディスク I/O を削減しました。 =back =head1 Modules and Pragmata (モジュールとプラグマ) =head2 New Modules and Pragmata (新しいモジュールとプラグマ) =over 4 =item * =begin original L 0.007 has been added to the Perl core. =end original L 0.007 が Perl コアに追加されました。 =item * =begin original L 0.29 has been added to the Perl core. =end original L 0.29 が Perl コアに追加されました。 =back =head2 Updated Modules and Pragmata (更新されたモジュールとプラグマ) =over 4 =item * =begin original L has been upgraded from version 1.90 to 1.96. =end original L はバージョン 1.90 から 1.96 に更新されました。 =item * =begin original L has been upgraded from version 0.06 to 0.07. =end original L はバージョン 0.06 から 0.07 に更新されました。 =item * =begin original L has been upgraded from version 0.94 to 0.96. =end original L はバージョン 0.94 から 0.96 に更新されました。 =item * =begin original L has been upgraded from version 0.21 to 0.22. =end original L はバージョン 0.21 から 0.22 に更新されました。 =item * =begin original L has been upgraded from version 2.13 to 2.23. =end original L はバージョン 2.13 から 2.23 に更新されました。 =item * =begin original L has been upgraded from version 5.73 to 5.74. =end original L はバージョン 5.73 から 5.74 に更新されました。 =item * =begin original L has been upgraded from version 1.07 to 1.08. =end original L はバージョン 1.07 から 1.08 に更新されました。 =item * =begin original L has been upgraded from version 1.42 to 1.48. =end original L はバージョン 1.42 から 1.48 に更新されました。 =item * =begin original L has been upgraded from version 0.95 to 0.992. =end original L はバージョン 0.95 から 0.992 に更新されました。 =item * =begin original L has been upgraded from version 1.18 to 1.19. =end original L はバージョン 1.18 から 1.19 に更新されました。 =item * =begin original L has been upgraded from version 1.20 to 1.26. =end original L はバージョン 1.20 から 1.26 に更新されました。 =item * =begin original L has been upgraded from version 2.18 to 2.22. =end original L はバージョン 2.18 から 2.22 に更新されました。 =item * =begin original L has been upgraded from version 1.15 to 1.18. =end original L はバージョン 1.15 から 1.18 に更新されました。 =item * =begin original L has been upgraded from version 0.33 to 0.37. =end original L はバージョン 0.33 から 0.37 に更新されました。 =item * =begin original L has been upgraded from version 1.29 to 1.3301. =end original L はバージョン 1.29 から 1.3301 に更新されました。 =item * =begin original L has been upgraded from version 3.63 to 3.65. NOTE: L is deprecated and may be removed from a future version of Perl. =end original L はバージョン 3.63 から 3.65 に更新されました。 注意: L は廃止予定で、 将来のバージョンの Perl から削除される予定です。 =item * =begin original L has been upgraded from version 1.36 to 1.40. =end original L はバージョン 1.36 から 1.40 に更新されました。 =item * =begin original L has been upgraded from version 0.64 to 0.65. =end original L はバージョン 0.64 から 0.65 に更新されました。 =item * =begin original L has been upgraded from version 2.060 to 2.064. =end original L はバージョン 2.060 から 2.064 に更新されました。 =item * =begin original L has been upgraded from version 2.060 to 2.065. =end original L はバージョン 2.060 から 2.065 に更新されました。 =item * =begin original L has been upgraded from version 0.17 to 0.20. =end original L はバージョン 0.17 から 0.20 に更新されました。 =item * =begin original L has been upgraded from version 1.27 to 1.31. =end original L はバージョン 1.27 から 1.31 に更新されました。 =item * =begin original L has been upgraded from version 2.00 to 2.05. =end original L はバージョン 2.00 から 2.05 に更新されました。 =item * =begin original L has been upgraded from version 2.120921 to 2.140640. =end original L はバージョン 2.120921 から 2.140640 に更新されました。 =item * =begin original L has been upgraded from version 2.122 to 2.125. =end original L はバージョン 2.122 から 2.125 に更新されました。 =item * =begin original L has been upgraded from version 0.008 to 0.012. =end original L はバージョン 0.008 から 0.012 に更新されました。 =item * =begin original L has been upgraded from version 2.145 to 2.151. =end original L はバージョン 2.145 から 2.151 に更新されました。 =item * =begin original L has been upgraded from version 1.04 to 1.07. =end original L はバージョン 1.04 から 1.07 に更新されました。 =item * =begin original L has been upgraded from version 1.827 to 1.831. =end original L はバージョン 1.827 から 1.831 に更新されました。 =item * =begin original L has been upgraded from version 0.05 to 0.06. =end original L はバージョン 0.05 から 0.06 に更新されました。 =item * =begin original L has been upgraded from version 0.02 to 0.03. =end original L はバージョン 0.02 から 0.03 に更新されました。 =item * =begin original L has been upgraded from version 1.11 to 1.16. =end original L はバージョン 1.11 から 1.16 に更新されました。 =item * =begin original L has been upgraded from version 3.20 to 3.21. =end original L はバージョン 3.20 から 3.21 に更新されました。 =item * =begin original L has been upgraded from version 1.31 to 1.34. =end original L はバージョン 1.31 から 1.34 に更新されました。 =item * =begin original L has been upgraded from version 2.52 to 2.53. =end original L はバージョン 2.52 から 2.53 に更新されました。 =item * =begin original L has been upgraded from version 5.84 to 5.88. =end original L はバージョン 5.84 から 5.88 に更新されました。 =item * =begin original L has been upgraded from version 1.18 to 1.25. =end original L はバージョン 1.18 から 1.25 に更新されました。 =item * =begin original L has been upgraded from version 2.49 to 2.60. =end original L はバージョン 2.49 から 2.60 に更新されました。 =item * =begin original L has been upgraded from version 2.6_01 to 2.12. =end original L はバージョン 2.6_01 から 2.12 に更新されました。 =item * =begin original L has been upgraded from version 1.06 to 1.09. =end original L はバージョン 1.06 から 1.09 に更新されました。 =item * =begin original L has been upgraded from version 1.18 to 1.20_03. =end original L はバージョン 1.18 から 1.20_03 に更新されました。 =item * =begin original L has been upgraded from version 5.68 to 5.70. =end original L はバージョン 5.68 から 5.70 に更新されました。 =item * =begin original L has been upgraded from version 0.280210 to 0.280216. =end original L はバージョン 0.280210 から 0.280216 に更新されました。 =item * =begin original L has been upgraded from version 1.17 to 1.18. =end original L はバージョン 1.17 から 1.18 に更新されました。 =item * =begin original L has been upgraded from version 1.30 to 1.32. =end original L はバージョン 1.30 から 1.32 に更新されました。 =item * =begin original L has been upgraded from version 1.59 to 1.67. =end original L はバージョン 1.59 から 1.67 に更新されました。 =item * =begin original L has been upgraded from version 6.66 to 6.98. =end original L はバージョン 6.66 から 6.98 に更新されました。 =item * =begin original L has been upgraded from version to 1.01. =end original L はバージョン 1.01 に更新されました。 =item * =begin original L has been upgraded from version 3.18 to 3.24. =end original L はバージョン 3.18 から 3.24 に更新されました。 =item * =begin original L has been upgraded from version 3.19 to 3.24. =end original L はバージョン 3.19 から 3.24 に更新されました。 =item * =begin original L has been upgraded from version 1.2 to 1.3. =end original L はバージョン 1.2 から 1.3 に更新されました。 =item * =begin original L has been upgraded from version 1.32 to 1.36. =end original L はバージョン 1.32 から 1.36 に更新されました。 =item * =begin original L has been upgraded from version 2.16 to 2.17. =end original L はバージョン 2.16 から 2.17 に更新されました。 =item * =begin original L has been upgraded from version 2.84 to 2.85. =end original L はバージョン 2.84 から 2.85 に更新されました。 =item * =begin original L has been upgraded from version 2.26 to 2.29. =end original L はバージョン 2.26 から 2.29 に更新されました。 =item * =begin original L has been upgraded from version 1.10 to 1.12. =end original L はバージョン 1.10 から 1.12 に更新されました。 =item * =begin original L has been upgraded from version 0.38 to 0.48. =end original L はバージョン 0.38 から 0.48 に更新されました。 =item * =begin original L has been upgraded from version 1.23 to 1.27. =end original L はバージョン 1.23 から 1.27 に更新されました。 =item * =begin original L has been upgraded from version 1.20 to 1.23. =end original L はバージョン 1.20 から 1.23 に更新されました。 =item * =begin original L has been upgraded from version 3.40 to 3.47. =end original L はバージョン 3.40 から 3.47 に更新されました。 =item * =begin original L has been upgraded from version 0.23 to 0.2304. =end original L はバージョン 0.23 から 0.2304 に更新されました。 =item * =begin original L has been upgraded from version 1.08 to 1.09. =end original L はバージョン 1.08 から 1.09 に更新されました。 =item * =begin original L has been upgraded from version 0.89 to 0.91. =end original L はバージョン 0.89 から 0.91 に更新されました。 =item * =begin original L has been upgraded from version 1.45 to 1.49. =end original L はバージョン 1.45 から 1.49 に更新されました。 =item * =begin original L has been upgraded from version 2.39 to 2.42. =end original L はバージョン 2.39 から 2.42 に更新されました。 =item * =begin original L has been upgraded from version 1.07 to 1.10. =end original L はバージョン 1.07 から 1.10 に更新されました。 =item * =begin original L has been upgraded from version 1.10 to 1.15. =end original L はバージョン 1.10 から 1.15 に更新されました。 =item * =begin original L has been upgraded from version 0.025 to 0.043. =end original L はバージョン 0.025 から 0.043 に更新されました。 =item * =begin original L has been upgraded from version 0.10 to 0.11. =end original L はバージョン 0.10 から 0.11 に更新されました。 =item * =begin original L has been upgraded from version 0.39 to 0.40. =end original L はバージョン 0.39 から 0.40 に更新されました。 =item * =begin original L has been upgraded from version 0.0602 to 0.0603. =end original L はバージョン 0.0602 から 0.0603 に更新されました。 =item * =begin original L has been upgraded from version 0.4003 to 0.4205. NOTE: L is deprecated and may be removed from a future version of Perl. =end original L はバージョン 0.4003 から 0.4205 に更新されました。 =item * =begin original L has been upgraded from version 1.00 to 1.01. =end original L はバージョン 1.00 から 1.01 に更新されました。 =item * =begin original L has been upgraded from version 1.28 to 1.31. =end original L はバージョン 1.28 から 1.31 に更新されました。 =item * =begin original L and friends have been upgraded from version 2.060 to 2.064. =end original L とその類似モジュールはバージョン 2.060 から 2.064 に 更新されました。 =item * =begin original L has been upgraded from version 0.80 to 0.92. =end original L はバージョン 0.80 から 0.92 に更新されました。 =item * =begin original L has been upgraded from version 1.13 to 1.16. =end original L はバージョン 1.13 から 1.16 に更新されました。 =item * =begin original L has been upgraded from version 2.03 to 2.04. =end original L はバージョン 2.03 から 2.04 に更新されました。 =item * =begin original L has been upgraded from version 2.27202 to 2.27203. =end original L はバージョン 2.27202 から 2.27203 に更新されました。 =item * =begin original L has been upgraded from version 1.27 to 1.38. =end original L はバージョン 1.27 から 1.38 に更新されました。 =item * =begin original L has been upgraded from version 1.02 to 1.03. =end original L はバージョン 1.02 から 1.03 に更新されました。 =item * =begin original L has been upgraded from version 3.25 to 3.30. =end original L はバージョン 3.25 から 3.30 に更新されました。 =item * =begin original L has been upgraded from version 1.23 to 1.25. =end original L はバージョン 1.23 から 1.25 に更新されました。 =item * =begin original L has been upgraded from version 1.9991 to 1.9993. =end original L はバージョン 1.9991 から 1.9993 に更新されました。 =item * =begin original L has been upgraded from version 0.30 to 0.31. =end original L はバージョン 0.30 から 0.31 に更新されました。 =item * =begin original L has been upgraded from version 0.2604 to 0.2606. =end original L はバージョン 0.2604 から 0.2606 に更新されました。 =item * =begin original L has been upgraded from version 3.13 to 3.14. =end original L はバージョン 3.13 から 3.14 に更新されました。 =item * =begin original L has been upgraded from version 0.4003 to 0.4205. NOTE: L is deprecated and may be removed from a future version of Perl. =end original L は 0.4003 から 0.4205 に更新されました。 L は廃止予定で、 将来のバージョンの Perl から 削除される予定です。 =item * =begin original L has been upgraded from version 2.89 to 3.10. =end original L はバージョン 2.89 から 3.10 に更新されました。 =item * =begin original L has been upgraded from version 0.24 to 0.32. =end original L はバージョン 0.24 から 0.32 に更新されました。 =item * =begin original L has been upgraded from version 0.54 to 0.62. =end original L はバージョン 0.54 から 0.62 に更新されました。 =item * =begin original L has been upgraded from version 1.000011 to 1.000019. =end original L はバージョン 1.000011 から 1.000019 に更新されました。 =item * =begin original L has been upgraded from version 1.11 to 1.16. =end original L はバージョン 1.11 から 1.16 に更新されました。 =item * =begin original L has been upgraded from version 2.41 to 2.43. =end original L はバージョン 2.41 から 2.43 に更新されました。 =item * =begin original L has been upgraded from version 1.25 to 1.27. =end original L はバージョン 1.25 から 1.27 に更新されました。 =item * =begin original L has been upgraded from version 0.02 to 0.04. NOTE: L is deprecated and may be removed from a future version of Perl. =end original L はバージョン 0.02 から 0.04 に更新されました。 注意: L は廃止予定で、 将来のバージョンの Perl から 削除される予定です。 =item * =begin original L has been upgraded from version 0.36 to 0.38. =end original L はバージョン 0.36 から 0.38 に更新されました。 =item * =begin original L has been upgraded from version 0.225 to 0.228. =end original L はバージョン 0.225 から 0.228 に更新されました。 =item * =begin original L has been upgraded from version 1.4404 to 1.4414. =end original L はバージョン 1.4404 から 1.4414 に更新されました。 =item * =begin original L has been upgraded from version 1.003 to 1.007. =end original L はバージョン 1.003 から 1.007 に更新されました。 =item * =begin original L has been upgraded from version 5.0150042 to 5.0150044. =end original L はバージョン 5.0150042 から 5.0150044 に更新されました。 =item * =begin original L has been upgraded from version 1.07 to 1.09. =end original L はバージョン 1.07 から 1.09 に更新されました。 =item * =begin original L has been upgraded from version 0.16 to 0.18. =end original L はバージョン 0.16 から 0.18 に更新されました。 =item * =begin original L has been upgraded from version 0.16 to 0.18. =end original L はバージョン 0.16 から 0.18 に更新されました。 =item * =begin original L has been upgraded from version 0.12 to 0.14. =end original L はバージョン 0.12 から 0.14 に更新されました。 =item * =begin original L has been upgraded from version 1.04 to 1.06. =end original L はバージョン 1.04 から 1.06 に更新されました。 =item * =begin original L has been upgraded from version 1.06 to 1.08. =end original L はバージョン 1.06 から 1.08 に更新されました。 =item * =begin original L has been upgraded from version 1.18 to 1.21. =end original L はバージョン 1.18 から 1.21 に更新されました。 =item * =begin original L has been upgraded from version 1.60 to 1.62. =end original L はバージョン 1.60 から 1.62 に更新されました。 =item * =begin original L has been upgraded from version 3.19 to 3.23. =end original L はバージョン 3.19 から 3.23 に更新されました。 =item * =begin original L has been upgraded from version 1.61 to 1.63. =end original L はバージョン 1.61 から 1.63 に更新されました。 =item * =begin original L has been upgraded from version 1.32 to 1.38_03. =end original L はバージョン 1.32 から 1.38_03 に更新されました。 =item * =begin original L has been upgraded from version 0.23 to 0.26. =end original L はバージョン 0.23 から 0.26 に更新されました。 =item * =begin original L has been upgraded from version 2.35 to 2.37. =end original L はバージョン 2.35 から 2.37 に更新されました。 =item * =begin original L has been upgraded from version 1.27 to 1.38. =end original L はバージョン 1.27 から 1.38 に更新されました。 =item * =begin original L has been upgraded from version 1.09 to 1.11. =end original L はバージョン 1.09 から 1.11 に更新されました。 =item * =begin original L has been upgraded from version 2.009 to 2.013. =end original L はバージョン 2.009 から 2.013 に更新されました。 =item * =begin original L has been upgraded from version 2.41 to 2.49. =end original L はバージョン 2.41 から 2.49 に更新されました。 =item * =begin original L has been upgraded from version 1.07 to 1.08. =end original L はバージョン 1.07 から 1.08 に更新されました。 =item * =begin original L has been upgraded from version 1.01 to 1.02. =end original L はバージョン 1.01 から 1.02 に更新されました。 =item * =begin original L has been upgraded from version 1.17 to 1.18. =end original L はバージョン 1.17 から 1.18 に更新されました。 =item * =begin original L has been upgraded from version 0.32 to 0.33. =end original L はバージョン 0.32 から 0.33 に更新されました。 =item * =begin original L has been upgraded from version 1.13 to 1.15. =end original L はバージョン 1.13 から 1.15 に更新されました。 =item * =begin original L has been upgraded from version 1.12 to 1.14. =end original L はバージョン 1.12 から 1.14 に更新されました。 =item * =begin original L has been upgraded from version 3.26 to 3.30. =end original L はバージョン 3.26 から 3.30 に更新されました。 =item * =begin original L has been upgraded from version 0.98 to 1.001002. =end original L はバージョン 0.98 から 1.001002 に更新されました。 =item * =begin original L has been upgraded from version 3.28 to 3.29. =end original L はバージョン 3.28 から 3.29 に更新されました。 =item * =begin original L has been upgraded from version 2012.0818 to 2013.0523. =end original L はバージョン 2012.0818 から 2013.0523 に更新されました。 =item * =begin original L has been upgraded from version 2012.0818 to 2013.0523. =end original L はバージョン 2012.0818 から 2013.0523 に更新されました。 =item * =begin original L has been upgraded from version 3.02 to 3.04. =end original L はバージョン 3.02 から 3.04 に更新されました。 =item * =begin original L has been upgraded from version 3.02 to 3.05. =end original L はバージョン 3.02 から 3.05 に更新されました。 =item * =begin original L has been upgraded from version 1.86 to 1.93. =end original L はバージョン 1.86 から 1.93 に更新されました。 =item * =begin original L has been upgraded from version 1.43 to 1.46. =end original L はバージョン 1.43 から 1.46 に更新されました。 =item * =begin original L has been upgraded from version 1.05 to 1.06. =end original L はバージョン 1.05 から 1.06 に更新されました。 =item * =begin original L has been upgraded from version 0.99 to 1.00. =end original L はバージョン 0.99 から 1.00 に更新されました。 =item * =begin original L has been upgraded from version 1.04 to 1.05. =end original L はバージョン 1.04 から 1.05 に更新されました。 =item * =begin original L has been upgraded from version 1.02 to 1.03. =end original L はバージョン 1.02 から 1.03 に更新されました。 =item * =begin original L has been upgraded from version 4.3 to 4.4. =end original L はバージョン 4.3 から 4.4 に更新されました。 =item * =begin original L has been upgraded from version 1.9725 to 1.9726. =end original L はバージョン 1.9725 から 1.9726 に更新されました。 =item * =begin original L has been upgraded from version 1.20_01 to 1.27. =end original L はバージョン 1.20_01 から 1.27 に更新されました。 =item * =begin original L has been upgraded from version 0.97 to 1.04. =end original L はバージョン 0.97 から 1.04 に更新されました。 =item * =begin original L has been upgraded from version 1.16 to 1.17. =end original L はバージョン 1.16 から 1.17 に更新されました。 =item * =begin original L has been upgraded from version 0.51 to 0.57. =end original L はバージョン 0.51 から 0.57 に更新されました。 =item * =begin original L has been upgraded from version 1.10 to 1.13. =end original L はバージョン 1.10 から 1.13 に更新されました。 =item * =begin original L has been upgraded from version 0.9902 to 0.9908. =end original L はバージョン 0.9902 から 0.9908 に更新されました。 =item * =begin original L has been upgraded from version 1.03 to 1.04. =end original L はバージョン 1.03 から 1.04 に更新されました。 =item * =begin original L has been upgraded from version 1.18 to 1.23. =end original L はバージョン 1.18 から 1.23 に更新されました。 =item * =begin original L has been upgraded from version 0.47 to 0.49. =end original L はバージョン 0.47 から 0.49 に更新されました。 =item * =begin original L has been upgraded from version 0.10 to 0.13. =end original L はバージョン 0.10 から 0.13 に更新されました。 =item * =begin original L has been upgraded from version 0.16 to 0.17. =end original L はバージョン 0.16 から 0.17 に更新されました。 =back =head1 Documentation (文書) =head2 New Documentation (新しい文書) =head3 L =begin original This document was removed (actually, renamed L and given a major overhaul) in Perl v5.14, causing Perl documentation websites to show the now out of date version in Perl v5.12 as the latest version. It has now been restored in stub form, directing readers to current information. =end original この文書は Perl v5.14 で削除されました(実際には L とリネームされて 大きくオーバーホールされました)が、Perl 文書 web サイトでは Perl v5.12 の 古い文書が最新版として表示されていました。 この文書は読者を現在の情報に導くようなスタブ形式で復旧されました。 =head2 Changes to Existing Documentation (既存の文書の変更) =head3 L =over 4 =item * =begin original New sections have been added to document the new index/value array slice and key/value hash slice syntax. =end original 新しいインデックス/値の配列 slice とキー/値のハッシュ slice の文法を 文書化するための新しい節が追加されました。 =back =head3 L =over 4 =item * =begin original The C and C debugger subroutines are now documented. [perl #77680] =end original デバッガサブルーチン C と C が文書化されました。 [perl #77680] =back =head3 L =over =item * =begin original C<\s> matching C<\cK> is marked experimental. =end original C<\cK> にマッチングする C<\s> は実験的としてマークされました。 =item * =begin original ithreads were accepted in v5.8.0 (but are discouraged as of v5.20.0). =end original ithreads は v5.8.0 に受け入れられました (しかし v5.20.0 から非推奨です) =item * =begin original Long doubles are not considered experimental. =end original long double は実験的とは考えられていません。 =item * =begin original Code in regular expressions, regular expression backtracking verbs, and lvalue subroutines are no longer listed as experimental. (This also affects L and L.) =end original 正規表現の中のコード、正規表現バックトラッキング動詞、左辺値サブルーチンは もはや実験的ではありません。 (これは L と L にも影響します。) =back =head3 L =over =item * =begin original C and C now note that they can reset the hash iterator. =end original C と C はハッシュ反復子をリセットすることについて 指摘するようになりました。 =item * =begin original C's handling of arguments is now more clearly documented. =end original C の引数の扱いについてより明確に文書化されました。 =item * =begin original C now has caveats about expanding floating point numbers in some locales. =end original C は、ロケールによっては浮動小数点数が拡張されることについて 警告するようになりました。 =item * =begin original C is now documented to handle an expression that evalutes to a code reference as if it was C. This behavior is at least ten years old. =end original C が文書化されました; これは C であるかのように、 コードリファレンスに評価される式を扱います。 この振る舞いは少なくとも 10 年前からあります。 =item * =begin original Since Perl v5.10, it has been possible for subroutines in C<@INC> to return a reference to a scalar holding initial source code to prepend to the file. This is now documented. =end original Perl v5.10 から、ファイルの先頭に追加する初期ソースコードを保持するスカラへの リファレンスを返すサブルーチンを C<@INC> に設定することが可能でした。 これが文書化されました。 =item * =begin original The documentation of C has been updated to recommend the use of C, C and C when dealing with references to blessed objects. =end original C の文書は、bless されたオブジェクトのリファレンスを扱うときに C, C, C を使うことを進めるように更新されました。 =back =head3 L =over 4 =item * =begin original Numerous minor changes have been made to reflect changes made to the perl internals in this release. =end original このリリースでの perl の内部で行われた変更を反映するための多くの小さな変更が 行われました。 =item * =begin original New sections on L and L have been added. =end original 新しい節である L と L が追加されました。 =back =head3 L =over 4 =item * =begin original The L section has been updated. =end original L 節が 更新されました。 =back =head3 L =over 4 =item * =begin original The documentation has been updated to include some more examples of C usage. =end original C の使用法に関するさらなる例を追加するために文書が更新されました。 =back =head2 L =over 4 =item * =begin original The L documentation used to describe the hierarchy of warning categories understood by the L pragma. That description has now been moved to the L documentation itself, leaving L as a stub that points to it. This change consolidates all documentation for lexical warnings in a single place. =end original L 文書は L プラグマによって理解される警告カテゴリの 階層を記述していました。 この記述は L 文書自身に移され、L はそこへのポインタを 示すスタブになりました。 この変更により、レキシカルな警告に関する全ての文書が一ヶ所に固まりました。 =back =head3 L =over =item * =begin original The documentation now mentions F and C<\F>, and includes many clarifications and corrections in general. =end original 文書は F と C<\F> に触れるようになり、一般的に多くの明確化と修正が 行われました。 =back =head3 L =over 4 =item * =begin original The language design of Perl has always called for monomorphic operators. This is now mentioned explicitly. =end original Perl の言語設計は、常に単一型演算子として呼び出されます。 これが明示的に言及されるようになりました。 =back =head3 L =over 4 =item * =begin original The C tutorial has been completely rewritten by Tom Christiansen, and now focuses on covering only the basics, rather than providing a comprehensive reference to all things openable. This rewrite came as the result of a vigorous discussion on perl5-porters kicked off by a set of improvements written by Alexander Hartmaier to the existing L. A "more than you ever wanted to know about C" document may follow in subsequent versions of perl. =end original C チュートリアルは Tom Christiansen によって完全に書き直され、 開くことができる全てのものへの包括的なリファレンスを提供するのではなく、 基本だけに焦点を当てるようになりました。 この書き直しは、Alexander Hartmaier によって書かれた既存の L の 改良から始まった perl5-porters での活発な議論の結果です。 「C についてあなたが知りたいと思う以上の」文書は将来のバージョンの perl に引き続くかもしれません。 =back =head3 L =over 4 =item * =begin original The fact that the regexp engine makes no effort to call (?{}) and (??{}) constructs any specified number of times (although it will basically DWIM in case of a successful match) has been documented. =end original 正規表現エンジンは (?{}) と (??{}) 構文を任意の回数呼び出しても無効である (しかしこれは一般的にマッチングが成功したときに空気を読みます) という事実が 文書化されました。 =item * =begin original The C modifier (for non-destructive substitution) is now documented. [perl #119151] =end original (非破壊置換のための) C 修飾子が文書化されました。 [perl #119151] =item * =begin original The documentation for C and C<(?# comment)> has been expanded and clarified. =end original C と C<(?# comment)> に関する文書が拡張され明確化されました。 =back =head3 L =over 4 =item * =begin original The documentation has been updated in the light of recent changes to F. =end original F の最近の変更を反映するために更新されました。 =back =head3 L =over 4 =item * =begin original The need to predeclare recursive functions with prototypes in order for the prototype to be honoured in the recursive call is now documented. [perl #2726] =end original 再帰呼び出しに対してプロトタイプに効果を持たせるためには、プロトタイプ付きの 再帰関数を先行宣言する必要があることが文書化されました。 [perl #2726] =item * =begin original A list of subroutine names used by the perl implementation is now included. [perl #77680] =end original perl 実装で使われるサブルーチン名の一覧が追加されました。 [perl #77680] =back =head3 L =over 4 =item * =begin original There is now a L section. =end original L 節が追加されました。 =back =head3 L =over 4 =item * =begin original The documentation has been updated to reflect C changes in Unicode 6.3. =end original Unicode 6.3 での C の変更を反映するために更新されました。 =back =head3 L =over 4 =item * =begin original A new section explaining the performance issues of $`, $& and $', including workarounds and changes in different versions of Perl, has been added. =end original $`, $&, $' の性能問題と Perl のバージョンによる違いを説明する新しい節が 追加されました。 =item * =begin original Three L variable names which have long been documented but do not actually exist have been removed from the documentation. These were C<$OLD_PERL_VERSION>, C<$OFMT>, and C<$ARRAY_BASE>. =end original 長い間文書化されていましたが実際には存在していなかった、三つの L 変数名が文書から削除されました。 それは C<$OLD_PERL_VERSION>, C<$OFMT>, C<$ARRAY_BASE> です。 =back =head3 L =over 4 =item * =begin original Several problems in the C example have been fixed. =end original C の例のいくつかの問題が修正されました。 =back =head1 Diagnostics (診断メッセージ) =begin original The following additions or changes have been made to diagnostic output, including warnings and fatal error messages. For the complete list of diagnostic messages, see L. =end original 以下の追加や変更が、警告や致命的エラーメッセージ含む診断出力に行われました。 完全な診断メッセージの一覧については、L を参照してください。 =head2 New Diagnostics (新しい診断メッセージ) =head3 New Errors (新しいエラー) =over 4 =item * Lvalue array slice, use array slice|perldiag/"delete argument is index/value array slice, use array slice"> =begin original (F) You used index/value array slice syntax (C<%array[...]>) as the argument to C. You probably meant C<@array[...]> with an @ symbol instead. =end original (F) インデックス/値形式の配列スライス文法 (C<%array[...]>) を C への 引数として使いました。 おそらく @ シンボルを使って C<@array[...]> としたかったのでしょう。 =item * Lvalue hash slice, use hash slice|perldiag/"delete argument is key/value hash slice, use hash slice"> =begin original (F) You used key/value hash slice syntax (C<%hash{...}>) as the argument to C. You probably meant C<@hash{...}> with an @ symbol instead. =end original (F) キー/値形式のハッシュスライス文法 (C<%hash{...}>) を C への 引数として使いました。 おそらく @ シンボルを使って C<@hash{...}> としたかったのでしょう。 =item * L =begin original (F) You assigned a magical array to a stash element, and then tried to use the subroutine from the same slot. You are asking Perl to do something it cannot do, details subject to change between Perl versions. =end original (F) マジカルな配列からスタッシュ要素に代入した後、同じスロットから サブルーチンを使おうとしました。 Perl のバージョンによって詳細が変更されるような、Perl にできないことを させようとしました。 =item * =begin original Added L to a %s reference is forbidden|perldiag/"Setting $E to %s reference is forbidden"> =end original L to a %s reference is forbidden|perldiag/"Setting $E to %s reference is forbidden"> が 追加されました。 =back =head3 New Warnings (新しい警告) =over 4 =item * L<%s on reference is experimental|perldiag/"push on reference is experimental">: =begin original The "auto-deref" feature is experimental. =end original "auto-deref" 機能は実験的です。 =begin original Starting in v5.14.0, it was possible to use push, pop, keys, and other built-in functions not only on aggregate types, but on references to them. The feature was not deployed to its original intended specification, and now may become redundant to postfix dereferencing. It has always been categorized as an experimental feature, and in v5.20.0 is carries a warning as such. =end original v5.14.0 から、push, pop, keys およびその他の組み込み関数は、集合型だけでなく そのリファレンスも使うことができました。 この機能は元々意図していた仕様通りに配置されず、今では接尾辞デリファレンスと 重複になっているかもしれません。 これは常に実験的機能としてカテゴリ化され、v5.20.0 から警告が発生します。 =begin original Warnings will now be issued at compile time when these operations are detected. =end original コンパイル時にこれらの操作が検出されると警告が発生するようになりました。 no if $] >= 5.01908, warnings => "experimental::autoderef"; =begin original Consider, though, replacing the use of these features, as they may change behavior again before becoming stable. =end original しかし、安定する前に振る舞いが再び変更されるかも知れないので、これらの機能の 使用を置き換えることを検討してください。 =item * L L =begin original These two deprecation warnings involving C<\N{...}> were incorrectly implemented. They did not warn by default (now they do) and could not be made fatal via C<< use warnings FATAL => 'deprecated' >> (now they can). =end original C<\N{...}> に関するこれら二つの廃止予定警告は実装が正しくありませんでした。 これらはデフォルトでは警告されず(今は警告されるようになりました)、 C<< use warnings FATAL => 'deprecated' >> で致命的エラーにすることが できませんでした(今はできるようになりました)。 =item * L =begin original (W misc) A sub was declared as C, for example. Since each sub can only have one prototype, the earlier declaration(s) are discarded while the last one is applied. =end original (W misc) 例えば、C のような形で サブルーチンが宣言されました。 それぞれのサブルーチンは一つだけのプロトタイプを持てるので、後者が 適用されたときに前者の宣言はは捨てられました。 =item * L =begin original (W syscalls) Embedded \0 characters in pathnames or other system call arguments produce a warning as of 5.20. The parts after the \0 were formerly ignored by system calls. =end original (W syscalls) パス名やその他のシステムコール引数内の組み込みの \0 文字は 5.20 から警告を出力するようになりました。 以前は \0 より後ろの部分はシステムコールによって無視されていました。 =item * L. =begin original This replaces the message "Code point 0x%X is not Unicode, all \p{} matches fail; all \P{} matches succeed". =end original これは "Code point 0x%X is not Unicode, all \p{} matches fail; all \P{} matches succeed" というメッセージを置き換えます。 =item * L =begin original (W illegalproto) A grouping was started with C<[> but never closed with C<]>. =end original (W illegalproto) C<[> でグループ化が始まりましたが C<]> で閉じられていません。 =item * L =begin original (W syntax) There is a possible problem with the mixing of a control flow operator (e.g. C) and a low-precedence operator like C. Consider: =end original (W syntax) フロー制御演算子 (例えば C) と C のような 低優先順位の演算子を混ぜたときに起こりうる問題です。 例えば: sub { return $a or $b; } =begin original This is parsed as: =end original これは以下のようにパースされ: sub { (return $a) or $b; } =begin original Which is effectively just: =end original これは実際には単に以下のものです: sub { return $a; } =begin original Either use parentheses or the high-precedence variant of the operator. =end original かっこを使うか、高優先順位版の演算子を使ってください。 =begin original Note this may be also triggered for constructs like: =end original これは以下のような構文でも発生するかもしれないことに注意してください: sub { 1 if die; } =item * L =begin original (S experimental::postderef) This warning is emitted if you use the experimental postfix dereference syntax. Simply suppress the warning if you want to use the feature, but know that in doing so you are taking the risk of using an experimental feature which may change or be removed in a future Perl version: =end original (S experimental::postderef) この警告は、実験的な接尾辞デリファレンス文法を 使ったときに出力されます。 この機能を使いたいときは単に警告を抑制してください; しかしそうすることは 将来のバージョンの Perl で変更されたり削除されたりするかもしれない実験的な 機能を使うリスクを取るということです: no warnings "experimental::postderef"; use feature "postderef", "postderef_qq"; $ref->$*; $aref->@*; $aref->@[@indices]; ... etc ... =item * L =begin original (W prototype) A prototype was declared in both the parentheses after the sub name and via the prototype attribute. The prototype in parentheses is useless, since it will be replaced by the prototype from the attribute before it's ever used. =end original (W prototype) サブルーチン名の後のかっことプロトタイプ属性の両方で プロトタイプが宣言されました。 属性からのプロトタイプで置き換えられるので、かっこによるプロトタイプは 無効です。 =item * L =begin original (W syntax) In scalar context, you've used an array index/value slice (indicated by %) to select a single element of an array. Generally it's better to ask for a scalar value (indicated by $). The difference is that C<$foo[&bar]> always behaves like a scalar, both in the value it returns and when evaluating its argument, while C<%foo[&bar]> provides a list context to its subscript, which can do weird things if you're expecting only one subscript. When called in list context, it also returns the index (what C<&bar> returns) in addition to the value. =end original (W syntax) スカラコンテキストで、配列の単一の要素を選択するために (% で示される) インデックス/値形式の配列スライスを使いました。 一般的に、($ で示される)スカラ値で問い合わせるべきです。 違いは以下の通りです; C<$foo[&bar]> は返り値の場合と引数を評価する場合で 常にスカラとして振る舞いますが、C<%foo[&bar]> は添え字に対して リストコンテキストを提供するので、一つの添え字を想定している場合は おかしなことが起こります。 リストコンテキストで呼び出されたときは、値に加えてインデックス (C<&bar> が 返すもの) も返ります。 =item * L =begin original (W syntax) In scalar context, you've used a hash key/value slice (indicated by %) to select a single element of a hash. Generally it's better to ask for a scalar value (indicated by $). The difference is that C<$foo{&bar}> always behaves like a scalar, both in the value it returns and when evaluating its argument, while C<@foo{&bar}> and provides a list context to its subscript, which can do weird things if you're expecting only one subscript. When called in list context, it also returns the key in addition to the value. =end original (W syntax) スカラコンテキストで、ハッシュの単一の要素を選択するために (% で示される) インデックス/値形式の配列スライスを使いました。 一般的に、($ で示される)スカラ値で問い合わせるべきです。 違いは以下の通りです; C<$foo{&bar}> は返り値の場合と引数を評価する場合で 常にスカラとして振る舞いますが、C<@foo{&bar}> は添え字に対して リストコンテキストを提供するので、一つの添え字を想定している場合は おかしなことが起こります。 リストコンテキストで呼び出されたときは、値に加えてキーも返ります。 =item * L to a reference to %s as a form of slurp is deprecated, treating as undef|perldiag/"Setting $E to a reference to %s as a form of slurp is deprecated, treating as undef"> =item * L =begin original (S) exit() was called or the script otherwise finished gracefully when C was set in C. =end original (S) C に C が設定されているときに、exit() が 呼び出されたかスクリプトが普通に終了しました。 =item * L =begin original (S) An uncaught die() was called when C was set in C. =end original (S) C に C が設定されているときに、 捕捉されていない die() が呼び出されました。 =item * L =begin original (D deprecated) Using literal control characters in the source to refer to the ^FOO variables, like $^X and ${^GLOBAL_PHASE} is now deprecated. This only affects code like $\cT, where \cT is a control (like a C) in the source code: ${"\cT"} and $^T remain valid. =end original (D deprecated) $^X と ${^GLOBAL_PHASE} のように、^FOO 変数を参照する元として リテラルな制御文字を使うのは廃止予定になりました。 これは $\cT で、\cT がソースコード中の (C のような) 制御文字の場合にのみ 影響します: ${"\cT"} と $^T は有効のままです。 =item * L =begin original This fixes [Perl #42957]. =end original これは [Perl #42957] を修正します。 =back =head2 Changes to Existing Diagnostics (既存の診断メッセージの変更) =over 4 =item * =begin original Warnings and errors from the regexp engine are now UTF-8 clean. =end original 正規表現エンジンからの警告とエラーは UTF-8 クリーンになりました。 =item * =begin original The "Unknown switch condition" error message has some slight changes. This error triggers when there is an unknown condition in a C<(?(foo))> conditional. The error message used to read: =end original "Unknown switch condition" エラーメッセージは少し変更されました。 このエラーは、C<(?(foo))> 条件文で不明な条件のときに起こります。 エラーメッセージは以下のような形でした: Unknown switch condition (?(%s in regex; =begin original But what %s could be was mostly up to luck. For C<(?(foobar))>, you might have seen "fo" or "f". For Unicode characters, you would generally get a corrupted string. The message has been changed to read: =end original しかし %s が何になるかはほとんど運でした。 C<(?(foobar))> の場合は、"fo" または "f" になるかもしれません。 Unicode 文字の場合は、一般的には壊れた文字列になります。 メッセージは以下のように変更されました: Unknown switch condition (?(...)) in regex; =begin original Additionally, the C<'E-- HERE'> marker in the error will now point to the correct spot in the regex. =end original さらに、エラー中の C<'E-- HERE'> マーカーが正規表現中の正しい位置を 指し示すようになりました。 =item * =begin original The "%s "\x%X" does not map to Unicode" warning is now correctly listed as a severe warning rather than as a fatal error. =end original "%s "\x%X" does not map to Unicode" 警告は、致命的エラーではなく、重大な警告に 正しく分類されるようになりました。 =item * =begin original Under rare circumstances, one could get a "Can't coerce readonly REF to string" instead of the customary "Modification of a read-only value". This alternate error message has been removed. =end original 稀な状況では、いつもの "Modification of a read-only value" ではなく "Can't coerce readonly REF to string" が出る場合がありました。 この代替エラーメッセージは削除されました。 =item * =begin original "Ambiguous use of * resolved as operator *": This and similar warnings about "%" and "&" used to occur in some circumstances where there was no operator of the type cited, so the warning was completely wrong. This has been fixed [perl #117535, #76910]. =end original "Ambiguous use of * resolved as operator *": これおよび、"%" と "&" に関する 同様の警告は、一部の状況ではこの種類の演算子が使われていないときにも 起こることがありました; この警告は完全に間違っています。 これは修正されました [perl #117535, #76910]。 =item * =begin original Warnings about malformed subroutine prototypes are now more consistent in how the prototypes are rendered. Some of these warnings would truncate prototypes containing nulls. In other cases one warning would suppress another. The warning about illegal characters in prototypes no longer says "after '_'" if the bad character came before the underscore. =end original 不正なサブルーチンに関する警告は、どのようにプロトタイプが 表現されるかによってより一貫するようになりました。 これらの警告の一部はヌルを含むプロトタイプを切り詰めます。 その他の場合ではある警告は他のものを抑制します。 プロトタイプ中の不正な文字に関する警告は、間違った文字が下線の前にあるときに "after '_'" と言わなくなりました。 =item * L%sE|perldiag/"Perl folding rules are not up-to-date for 0x%X; please use the perlbug utility to report; in regex; marked by <-- HERE in m/%s/"> =begin original This message is now only in the regexp category, and not in the deprecated category. It is still a default (i.e., severe) warning [perl #89648]. =end original この警告は regexp カテゴリのみで、deprecated カテゴリではなくなりました。 これはデフォルトの(つまり重大な)警告のままです [perl #89648]。 =item * L<%%s[%s] in scalar context better written as $%s[%s]|perldiag/"%%s[%s] in scalar context better written as $%s[%s]"> =begin original This warning now occurs for any C<%array[$index]> or C<%hash{key}> known to be in scalar context at compile time. Previously it was worded "Scalar value %%s[%s] better written as $%s[%s]". =end original この警告は、コンパイル時にスカラコンテキストであると分かっている C<%array[$index]> や C<%hash{key}> で起きるようになりました。 以前は "Scalar value %%s[%s] better written as $%s[%s]" という文言でした。 =item * L%sE|perldiag/"Switch condition not recognized in regex; marked by <-- HERE in m/%s/">: =begin original The description for this diagnostic has been extended to cover all cases where the warning may occur. Issues with the positioning of the arrow indicator have also been resolved. =end original この診断メッセージの説明は、この警告が起こる全ての場合に対応するように 拡張されました。 矢印指示子の位置の問題も解決しました。 =item * =begin original The error messages for C and C now mention "conditional expression" and "do block", respectively, instead of reading 'Can't declare null operation in "my"'. =end original C と C のためのエラーメッセージは、 'Can't declare null operation in "my"' ではなく、それぞれ "conditional expression" と "do block" に言及するようになりました。 =item * =begin original When C executes a regex containing a backreference, the debugging output now shows what string is being matched. =end original C が後方参照を含む正規表現を実行したとき、デバッグ出力は どの文字列がマッチングされたかを表示するようになりました。 =item * =begin original The now fatal error message C has been reworded as C to emphasize that in C<\cI>, I must be a I ASCII character. =end original 致命的エラーメッセージ C は、 C<\cI> で I が I<表示(非制御)> ASCII 文字でなければならないことを 強調するために、C に 変更されました。 =back =head1 Utility Changes (ツールの変更) =head3 L =over 4 =item * =begin original A possible crash from an off-by-one error when trying to access before the beginning of a buffer has been fixed. [perl #120244] =end original バッファの先頭より前にアクセスしようとしたときの off-by-one エラーによる クラッシュが修正されました。 [perl #120244] =back =head3 F =begin original The git bisection tool F has had many enhancements. =end original git bisect ツール F は多くの拡張が行われました。 =begin original It is provided as part of the source distribution but not installed because it is not self-contained as it relies on being run from within a git checkout. Note also that it makes no attempt to fix tests, correct runtime bugs or make something useful to install - its purpose is to make minimal changes to get any historical revision of interest to build and run as close as possible to "as-was", and thereby make C easy to use. =end original これはソース配布の一部として提供されていますが、インストールはされません; git checkout の中で実行されていることに依存しているので 自己完結していないからです。 また、テストを修正したり実行時のバグを修正したりインストール時に何か 有用なことを行うものではないことにも注意してください - この目的は できるだけ「そのまま」ビルドと実行するための関心のある歴史的なリビジョンを 得るための最小限の変更点を作り、それによって C を簡単に 使えるようにするためのものです。 =over 4 =item * =begin original Can optionally run the test case with a timeout. =end original オプションでタイムアウト付きのテストを実行できるようになりました。 =item * =begin original Can now run in-place in a clean git checkout. =end original クリーンな clean git checkout を行ったその場で実行できるようになりました。 =item * =begin original Can run the test case under C. =end original C 以下のテストケースを実行できるようになりました。 =item * =begin original Can apply user supplied patches and fixes to the source checkout before building. =end original ビルドする前にユーザーが提供したパッチを適用してソースを 修正できるようになりました。 =item * =begin original Now has fixups to enable building several more historical ranges of bleadperl, which can be useful for pinpointing the origins of bugs or behaviour changes. =end original いくつかのさらに歴史的な範囲の bleadperl をビルドできるように修正されました; これはバグや振る舞いの変更の起点を特定するのに有用です。 =back =head3 L =over 4 =item * =begin original L now handles C wildcards correctly. [perl #113054] =end original L は C ワイルドカードを正しく扱えるようになりました。 [perl #113054] =back =head3 L =over 4 =item * =begin original F now has a C<-p> option for attaching patches with a bug report. =end original F に、バグ報告にパッチを添付するための C<-p> オプションが 追加されました。 =item * =begin original L has been modified to supply the report template with CRLF line endings on Windows. [L] =end original L は、Windows では行末が CRLF の報告テンプレートを供給するように 修正されました。 [L] =item * =begin original L now makes as few assumptions as possible about the encoding of the report. This will likely change in the future to assume UTF-8 by default but allow a user override. =end original L は、報告のエンコーディングについてできるだけ仮定を置かないように なりました。 これは将来にはおそらく、デフォルトでは UTF-8 を仮定するけれどもユーザーが 上書きできるように変更されます。 =back =head1 Configuration and Compilation (設定とコンパイル) =over 4 =item * =begin original The F for L now generates a better F, which avoids a race condition during parallel makes, which could cause the build to fail. This is the last known parallel make problem (on *nix platforms), and therefore we believe that a parallel make should now always be error free. =end original L のための F はよりよい F を 生成するようになりました; これは、ビルド失敗を引き起こす、並列 make 中の 競合条件を回避します。 これは (*nix プラットフォームでの) 知られている最後の並列 make での 問題だったので、これで並列 make は常にエラーなしになったと信じています。 =item * =begin original F and F's option handling has been refactored to use L. Both are used by the F C targets, and are not installed, so these changes are only likely to affect custom installation scripts. =end original F と F のオプションの扱いは、L を 使うようにリファクタリングされました。 双方は F C ターゲットで使われていて、かつこれらは インストールされないので、これらの変更はおそらくカスタムインストール スクリプトにのみ影響を与えます。 =over 4 =item * =begin original Single letter options now also have long names. =end original 一文字オプションは長い名前も持つようになりました。 =item * =begin original Invalid options are now rejected. =end original 不正なオプションは拒否されるようになりました。 =item * =begin original Command line arguments that are not options are now rejected. =end original オプションでないコマンドライン引数は拒否されるようになりました。 =item * =begin original Each now has a C<--help> option to display the usage message. =end original それぞれは、使用法メッセージを表示する C<--help> オプションを 持つようになりました。 =back =begin original The behaviour for all valid documented invocations is unchanged. =end original 文書化された正当な起動方法での振る舞いは変わっていません。 =item * =begin original Where possible, the build now avoids recursive invocations of F when building pure-Perl extensions, without removing any parallelism from the build. Currently around 80 extensions can be processed directly by the F tool, meaning that 80 invocations of F and 160 invocations of F are no longer made. =end original 可能なら、ピュア Perl エクステンションをビルドするときに、ビルドの並列性を 損なうことなく F の再帰的な起動を回避するようになりました。 現在のところおよそ 80 のエクステンションが直接 F ツールによって 処理されるので、F を 80 回起動して、F を 160 回 起動するということはもはや起こりません。 =item * =begin original The build system now works correctly when compiling under GCC or Clang with link-time optimization enabled (the C<-flto> option). [perl #113022] =end original GCC または Clang でリンク時最適化が有効 (C<-flto> オプション) のときに、 ビルドシステムは正しく動作するようになりました。 [perl #113022] =item * =begin original Distinct library basenames with C. =end original C による明確なライブラリ基本名。 =begin original When compiling perl with this option, the library files for XS modules are named something "unique" -- for example, Hash/Util/Util.so becomes Hash/Util/PL_Hash__Util.so. This behavior is similar to what currently happens on VMS, and serves as groundwork for the Android port. =end original このオプション付きで perl をコンパイルするとき、XS モジュールのための ライブラリファイルの名前はある意味「ユニーク」です -- 例えば、 Hash/Util/Util.so は Hash/Util/PL_Hash__Util.so になります。 この振る舞いは現在 VMS に起きているものと似ていて、Android 版の基礎を 提供します。 =item * =begin original C option to indicate the logical root directory under gcc and clang. =end original gcc と clang での論理ルートディレクトリを示す C オプション。 =begin original When building with this option set, both Configure and the compilers search for all headers and libraries under this new sysroot, instead of /. =end original このオプションを設定してビルドしたとき、Configure とコンパイラは、/ ではなく、 この新しい sysroot から全てのヘッダとライブラリを検索します。 =begin original This is a huge time saver if cross-compiling, but can also help on native builds if your toolchain's files have non-standard locations. =end original これはクロスコンパイル時に非常に時間を節約しますが、ツールチェインの ファイルが非標準の位置にある場合はネイティブなビルドでも助けになります。 =item * =begin original The cross-compilation model has been renovated. There's several new options, and some backwards-incompatible changes: =end original クロスコンパイルモデルが刷新されました。 いくつかの新しいオプションと、いくつかの後方互換性のない変更があります: =begin original We now build binaries for miniperl and generate_uudmap to be used on the host, rather than running every miniperl call on the target; this means that, short of 'make test', we no longer need access to the target system once Configure is done. You can provide already-built binaries through the C and C options to Configure. =end original 全ての miniperl 呼び出しをターゲットで実行するのではなく、ホストで使うための miniperl と generate_uudmap をビルドするようになりました; これは、 'make test' の手前で、一旦 Configure が終了すればもはやターゲットシステムに アクセスする必要がないということです。 Configure の C と C オプションを通して、既に ビルドされたバイナリを提供できます。 =begin original Additionally, if targeting an EBCDIC platform from an ASCII host, or viceversa, you'll need to run Configure with C<-Uhostgenerate>, to indicate that generate_uudmap should be run on the target. =end original さらに、ASCII ホストから EBCDIC プラットフォームをターゲットにする場合、 またはその逆の場合、generate_uudmap をターゲットで実行する必要があることを 示すために C<-Uhostgenerate> 付きで Configure を実行する必要があります。 =begin original Finally, there's also a way of having Configure end early, right after building the host binaries, by cross-compiling without specifying a C. =end original 最後に、C を指定せずにクロスコンパイルすることで、ホストバイナリを ビルドした直後に Configure を終了させる方法もあります。 =begin original The incompatible changes include no longer using xconfig.h, xlib, or Cross.pm, so canned config files and Makefiles will have to be updated. =end original 互換性のない変更には、もはや xconfig.h, xlib, Cross.pm を使わないということが 含まれているので、既存の設定ファイルと Makefile は更新する必要があります。 =item * =begin original Related to the above, there is now a way of specifying the location of sh (or equivalent) on the target system: C. =end original 前記に関連して、ターゲットシステムの sh (または等価物) の位置を指定する 方法ができました: C。 =begin original For example, Android has its sh in /system/bin/sh, so if cross-compiling from a more normal Unixy system with sh in /bin/sh, "targetsh" would end up as /system/bin/sh, and "sh" as /bin/sh. =end original 例えば、Android では sh は /system/bin/sh にあるので、sh が /bin/sh である、 より普通の Unix 風システムからクロスコンパイルする場合、 "targetsh" は /system/bin/sh になり、"sh" は /bin/sh になります。 =item * =begin original By default, B 4.9 does some optimizations that break perl. The B<-fwrapv> option disables those optimizations (and probably others), so for B 4.3 and later (since the there might be similar problems lurking on older versions too, but B<-fwrapv> was broken before 4.3, and the optimizations probably won't go away), F now adds B<-fwrapv> unless the user requests B<-fno-wrapv>, which disables B<-fwrapv>, or B<-fsanitize=undefined>, which turns the overflows B<-fwrapv> ignores into runtime errors. [L] =end original デフォルトでは、B 4.9 は perl を壊すような最適化を行っていました。 B<-fwrapv> オプションはこれら(およびおそらくその他)の最適化を無効にするので、 B 4.3 以降 (同様の問題はより古いバージョンにもあったかもしれませんが、 B<-fwrapv> は 4.3 までは壊れていて、おそらく最適化がなくなることは ないので) では、ユーザーが B<-fwrapv> を無効にする B<-fno-wrapv>、または B<-fwrapv> のオーバーフローを実行時エラーにするのを無視する B<-fsanitize=undefined> を指定しない限り、F は B<-fwrapv> を 追加します。 [L] =back =head1 Testing (テスト) =over 4 =item * =begin original The C make target now allows tests to be run in parallel. This target allows Perl's test suite to be run under Valgrind, which detects certain sorts of C programming errors, though at significant cost in running time. On suitable hardware, allowing parallel execution claws back a lot of that additional cost. [perl #121431] =end original C make ターゲットは、テストを並列に実行できるようになりました。 このターゲットは Perl のテストスイートを Valgrind の元で実行できるようにし、 ある種の C プログラミングエラーを検出しますが、かなり時間がかかります。 適切なハードウェアがあれば、並列実行によって追加のコストをかなり取り戻せます。 [perl #121431] =item * =begin original Various tests in F are no longer skipped when the perl F<.git> directory is outside the perl tree and pointed to by C<$GIT_DIR>. [perl #120505] =end original F 以下の様々なテストは、perl の F<.git> ディレクトリが perl ツリーの外側で C<$GIT_DIR> で示されている場合でも、飛ばされなくなりました。 [perl #120505] =item * =begin original The test suite no longer fails when the user's interactive shell maintains a C<$PWD> environment variable, but the F used for running tests doesn't. =end original テストスイートは、ユーザーの対話的シェルがC<$PWD> 環境変数を 保守しているけれども、テスト実行のために使われる F が 保守していない時にも失敗しなくなりました。 =back =head1 Platform Support (プラットフォーム対応) =head2 New Platforms (新しいプラットフォーム) =over 4 =item Android =begin original Perl can now be built for Android, either natively or through cross-compilation, for all three currently available architectures (ARM, MIPS, and x86), on a wide range of versions. =end original ネイティブとクロスコンパイルの両方、現在利用可能な三つのアーキテクチャ (ARM, MIPS, x86) 全て、および幅広いバージョンの Android で ビルドできるようになりました。 =item Bitrig =begin original Compile support has been added for Bitrig, a fork of OpenBSD. =end original OpenBSD のフォークである Bitrig のためのコンパイル対応が追加されました。 =item FreeMiNT =begin original Support has been added for FreeMiNT, a free open-source OS for the Atari ST system and its successors, based on the original MiNT that was officially adopted by Atari. =end original FreeMiNT のための対応が追加されました; これは Atari ST システムとその子孫の ためのフリーなオープンソース OS で、元の MiNT は Atari によって公式に 譲渡されました。 =item Synology =begin original Synology ships its NAS boxes with a lean Linux distribution (DSM) on relative cheap CPU's (like the Marvell Kirkwood mv6282 - ARMv5tel or Freescale QorIQ P1022 ppc - e500v2) not meant for workstations or development. These boxes should build now. The basic problems are the non-standard location for tools. =end original Synology は、(Marvell Kirkwood mv6282 - ARMv5tel や Freescale QorIQ P1022 ppc - e500v2 のような) ワークステーションや開発用ではない比較的安価な CPU と 軽量 Linux ディストリビューション (DSM) の NAS ボックスを出荷しました。 これらのマシンでビルドできるようになったはずです。 基本的な問題は、ツールのための非標準の位置です。 =back =head2 Discontinued Platforms (中断したプラットフォーム) =over 4 =item C =begin original Code related to supporting the C I/O system has been removed. =end original C I/O システム対応に関係するコードは削除されました。 =begin original Perl 5.004 added support to use the native API of C, AT&T's Safe/Fast I/O library. This code still built with v5.8.0, albeit with many regression tests failing, but was inadvertently broken before the v5.8.1 release, meaning that it has not worked on any version of Perl released since then. In over a decade we have received no bug reports about this, hence it is clear that no-one is using this functionality on any version of Perl that is still supported to any degree. =end original Perl 5.004 で、C (AT&T の Safe/Fast I/O ライブラリ) の ネイティブ API 使用の対応が追加されました。 このコードは多くの退行テストが失敗していたにも関わらず v5.8.0 でも ビルドされていましたが、不注意で v5.8.1 リリースの前に壊れました; つまり、 それ以降にリリースされたどのバージョンの Perl でも動作しません。 10 年以上これに関するバグ報告を受け取っていないので、この機能をまだ 対応していたバージョンの Perl でも誰も使っていなかったのは明らかです。 =item AT&T 3b1 =begin original Configure support for the 3b1, also known as the AT&T Unix PC (and the similar AT&T 7300), has been removed. =end original 3b1、またの名を AT&T Unix PC (および同様の AT&T 7300) の Configure 対応は 削除されました。 =item DG/UX =begin original DG/UX was a Unix sold by Data General. The last release was in April 2001. It only runs on Data General's own hardware. =end original DG/UX は Data General によって販売されていた Unix です。 最後のリリースは 2001 年 4 月です。 これは Data General 独自のハードウェアでのみ実行されます。 =item EBCDIC =begin original In the absence of a regular source of smoke reports, code intended to support native EBCDIC platforms will be removed from perl before 5.22.0. =end original 定期的な smoke の報告源がないので、ネイティブな EBCDIC プラットフォームに 対応することを意図したコードは 5.22.0 の前に perl から取り除かれる予定です。 =back =head2 Platform-Specific Notes (プラットフォーム固有の注意) =over 4 =item Cygwin =over 4 =item * =begin original recv() on a connected handle would populate the returned sender address with whatever happened to be in the working buffer. recv() now uses a workaround similar to the Win32 recv() wrapper and returns an empty string when recvfrom(2) doesn't modify the supplied address length. [perl #118843] =end original 接続されたハンドルへの recv() は、返された送り先アドレスがたまたまワーク バッファにになったもので埋められていました。 recv() は Win32 recv() ラッパーと同様の回避策を使うようになり、 recvfrom(2) が与えられたアドレスの長さを修正しない場合は空文字列を 返すようになりました。 [perl #118843] =item * =begin original Fixed a build error in cygwin.c on Cygwin 1.7.28. =end original Cygwin 1.7.28 での cygwin.c のビルドエラーが修正されました。 =begin original Tests now handle the errors that occur when C isn't running. =end original テストは C が実行されなかった時に起きるエラーを 扱うようになりました。 =back =item GNU/Hurd =begin original The BSD compatibility library C is no longer required for builds. =end original BSD 互換ライブラリ C はもはやビルドに必要なくなりました。 =item Linux =begin original The hints file now looks for C only if C itself is also wanted. The former is never useful without the latter, and in some circumstances, including it could actually prevent building. =end original ヒントファイルが C を探すのは C 自身が必要な 場合にのみになりました。 前者は後者なしではまったく有用ではなく、一部の状況では、これを含めると 実際にはビルドを妨げることがあります。 =item Mac OS =begin original The build system now honors an C setting supplied by the user running F. =end original ビルドシステムは、ユーザーが実行した F から提供された C 設定に 従うようになりました。 =item MidnightBSD =begin original C was removed from version 0.4-RELEASE of MidnightBSD and had been deprecated on earlier versions. This caused the build environment to be erroneously configured for C rather than C. This has been now been corrected. =end original C は MidnightBSD のバージョン 0.4-RELEASE で削除され、それ以前の バージョンでは廃止予定でした。 これにより、ビルド環境が誤って C ではなく C として 設定されていました。 これは修正されました。 =item Mixed-endian platforms (混合エンディアンプラットフォーム) =begin original The code supporting C and C operations on mixed endian platforms has been removed. We believe that Perl has long been unable to build on mixed endian architectures (such as PDP-11s), so we don't think that this change will affect any platforms which were able to build v5.18.0. =end original 混合エンディアンプラットフォームでの C と C 操作に対応する コードが削除されました。 Perl は長い間 (PDP-11 のような) 混合エンディアンプラットフォームでは ビルドできなくなっていたはずなので、この変更により、v5.18.0 がビルドできる プラットフォームに影響することはないと考えています。 =item VMS =over 4 =item * =begin original The C feature to control the population of %ENV at perl start-up was broken in Perl 5.16.0 but has now been fixed. =end original perl の起動時の %ENV の内容を制御する C 機能は Perl 5.16.0 で 壊れていましたが、修正されました。 =item * =begin original Skip access checks on remotes in opendir(). [perl #121002] =end original opendir() でのリモートに対するアクセスチェックを飛ばします。 [perl #121002] =item * =begin original A check for glob metacharacters in a path returned by the L|perlfunc/glob> operator has been replaced with a check for VMS wildcard characters. This saves a significant number of unnecessary L|perlfunc/lstat> calls such that some simple glob operations become 60-80% faster. =end original L|perlfunc/glob> 演算子から返されたパスのグロブメタ文字のチェックは VMS ワイルドカード文字のチェックで置き換えられました。 これにより多くの不必要な L|perlfunc/lstat> 呼び出しを削減し、 単純なグロブ操作は 60-80% 高速になります。 =back =item Win32 =over 4 =item * =begin original C and C on Win32 now set $! to ENOSPC and EDQUOT when appropriate. [perl #119857] =end original Win32 での C と C は、適切な場合に $! に ENOSPC と EDQUOT を 設定するようになりました。 [perl #119857] =item * =begin original The BUILD_STATIC and ALL_STATIC makefile options for linking some or (nearly) all extensions statically (into perl520.dll, and into a separate perl-static.exe too) were broken for MinGW builds. This has now been fixed. =end original 一部または (ほとんど) 全てのエクステンションを静的に (perl520.dll および 独立した perl-static.exe にも)リンクするための BUILD_STATIC と ALL_STATIC の makefile オプションは MinGW ビルドでは壊れていました。 これは修正されました。 =begin original The ALL_STATIC option has also been improved to include the Encode and Win32 extensions (for both VC++ and MinGW builds). =end original ALL_STATIC オプションは、(VC++ と MinGW の両方のビルドで) Encode と Win32 の エクステンションをリンクするように改良されました。 =item * =begin original Support for building with Visual C++ 2013 has been added. There are currently two possible test failures (see L) which will hopefully be resolved soon. =end original Visual C++ 2013 でのビルド対応が追加されました。 現在のところ二つのテストに失敗することがあります (L を参照してください) が、うまくいけば まもなく解決されます。 =item * =begin original Experimental support for building with Intel C++ Compiler has been added. The nmake makefile (win32/Makefile) and the dmake makefile (win32/makefile.mk) can be used. A "nmake test" will not pass at this time due to F. =end original Intel C++ Compiler でビルドするための実験的な対応が追加されました。 nmake makefile (win32/Makefile) と dmake makefile (win32/makefile.mk) が 使えます。 "nmake test" は今のところ F によって失敗します。 =item * =begin original Killing a process tree with L and a negative signal, was broken starting in 5.18.0. In this bug, C always returned 0 for a negative signal even for valid PIDs, and no processes were terminated. This has been fixed [perl #121230]. =end original L と負数のシグナルを使ってプロセスツリーを kill するのは 5.18.0 から壊れていました。 このバグで、C は有効な PID でも負数のシグナルに対して 0 を返し、 プロセスを終了させていませんでした。 これは修正されました [perl #121230]。 =item * =begin original The time taken to build perl on Windows has been reduced quite significantly (time savings in the region of 30-40% are typically seen) by reducing the number of, usually failing, I/O calls for each L|perlfunc/require> (for B only). [L] =end original (B のみで) L|perlfunc/require> での、普通は 失敗する、多くの I/O 呼び出しを削減することで、Windows で perl を ビルドするのにかかる時間はかなり大幅に削減されました (典型的にはこの領域で 30-40% 短くなっています)。 [L] =item * =begin original About 15 minutes of idle sleeping was removed from running C due to a bug in which the timeout monitor used for tests could not be cancelled once the test completes, and the full timeout period elapsed before running the next test file. [L] =end original テストのために使っているタイムアウトモニタをテスト終了時に キャンセルすることができないために、次のテストファイルの前にタイムアウト 時間全てが経過するというバグのために、C の実行時に 15 分ほど スリープする問題は修正されました。 [L] =item * =begin original On a perl built without pseudo-fork (pseudo-fork builds were not affected by this bug), killing a process tree with L|perlfunc/kill> and a negative signal resulted in C inverting the returned value. For example, if C killed 1 process tree PID then it returned 0 instead of 1, and if C was passed 2 invalid PIDs then it returned 2 instead of 0. This has probably been the case since the process tree kill feature was implemented on Win32. It has now been corrected to follow the documented behaviour. [L] =end original 疑似フォークなしでビルドされた perl において (疑似フォークビルドはこのバグに 影響されません)、L|perlfunc/kill> によるプロセスツリーの kill と 負のシグナルは、C が返り値を反転させます。 例えば、C が 1 プロセスツリー PID を kill すると、1 ではなく 0 を返し、C に不正な 2 PID が渡されると 0 ではなく 2 を返します。 これはおそらくプロセスツリー kill 機能が Win32 で実装されたときからあります。 これは修正されて、文書化されている通りの振る舞いになりました。 [L] =item * =begin original When building a 64-bit perl, an uninitialized memory read in B, used during the build process, could lead to a 4GB B being created. This has now been fixed. (Note that B itself was unaffected, but obviously B would have been completely broken.) [L] =end original 64 ビット perl をビルドするとき、ビルド処理の間に B が 未初期化メモリを読み、結果として 4GB B が 作成されることがあります。 これは修正されました。 (B 自身には影響しませんが、明らかに B は完全に 壊れていることに注意してください。) [L] =item * =begin original Perl can now be built with B version 4.8.1 from L. This was previously broken due to an incorrect definition of DllMain() in one of perl's source files. Earlier B versions were also affected when using version 4 of the w32api package. Versions of B available from L were not affected. [L] =end original L の B バージョン 4.8.1 で Perl を ビルドできるようになりました。 これは以前は perl のソースファイルの一つでの DllMain() の定義が 間違っていたために壊れていました。 w32api パッケージのバージョン 4 を使っている場合は、より古い B バージョンも影響を受けます。 L から利用可能なバージョンの B は 影響を受けません。 [L] =item * =begin original The test harness now has no failures when perl is built on a FAT drive with the Windows OS on an NTFS drive. [L] =end original NTFS ドライブのある Windows OS 上で FAT ドライブでビルドしても、 テストハーネスは失敗しなくなりました。 [L] =item * =begin original When cloning the context stack in fork() emulation, Perl_cx_dup() would crash accessing parameter information for context stack entries that included no parameters, as with C<&foo;>. [L] =end original fork() エミュレーションのコンテキストスタックをクローン化するときに、 Perl_cx_dup() は、C<&foo;> のように引数を含んでいないコンテキストスタック エントリの引数情報にアクセスするとクラッシュしていました。 [L] =item * =begin original Introduced by L, a memory leak on every call to C and backticks (C< `` >), on most Win32 Perls starting from 5.18.0 has been fixed. The memory leak only occurred if you enabled psuedo-fork in your build of Win32 Perl, and were running that build on Server 2003 R2 or newer OS. The leak does not appear on WinXP SP3. [L] =end original L によって 導入されていた、5.18.0 からほとんどの Win32 Perl で C および逆クォート (C< `` >) を呼び出す毎に起きていたメモリリークは修正されました。 このメモリリークは、Win32 Perl のビルド時に疑似フォークを有効にしていて、 Server 2003 R2 以降の OS 実行したときにのみ発生していました。 このリークは WinXP SP3 では起こりません。 [L] =back =item WinCE =over 4 =item * =begin original The building of XS modules has largely been restored. Several still cannot (yet) be built but it is now possible to build Perl on WinCE with only a couple of further patches (to L and L), hopefully to be incorporated soon. =end original XS モジュールのビルドが大幅に復旧されました。 いくつかは(まだ)できませんが、(L と L に対する) うまくいけばまもなく統合されるさらなるいくつかのパッチだけで WinCE で Perl をビルド出来るようになりました。 =item * =begin original Perl can now be built in one shot with no user intervention on WinCE by running C. =end original C とすることで、ユーザーの介入なしで WinCE で Perl を ビルド出来るようになりました。 =begin original Support for building with EVC (Embedded Visual C++) 4 has been restored. Perl can also be built using Smart Devices for Visual C++ 2005 or 2008. =end original EVC (Embedded Visual C++) 4 でのビルド対応が復旧されました。 Perl はまた Smart Devices for Visual C++ 2005 または 2008 を使って ビルドすることもできます。 =back =back =head1 Internal Changes (内部の変更) =over 4 =item * =begin original The internal representation has changed for the match variables $1, $2 etc., $`, $&, $', ${^PREMATCH}, ${^MATCH} and ${^POSTMATCH}. It uses slightly less memory, avoids string comparisons and numeric conversions during lookup, and uses 23 fewer lines of C. This change should not affect any external code. =end original $1, $2 など、$`, $&, $', ${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} の マッチング変数の内部表現が変わりました。 これでメモリ消費が少し少なくなり、検索時の文字列比較と数値変換がなくなり、 C で 23 行短くなりました。 この変更は外部のコードには影響しないはずです。 =item * =begin original Arrays now use NULL internally to represent unused slots, instead of &PL_sv_undef. &PL_sv_undef is no longer treated as a special value, so av_store(av, 0, &PL_sv_undef) will cause element 0 of that array to hold a read-only undefined scalar. C<$array[0] = anything> will croak and C<\$array[0]> will compare equal to C<\undef>. =end original 配列に関して内部で使っていないスロットを表現するために &PL_sv_undef の代わりに NULL を使うようになりました。 &PL_sv_undef はもはや特殊な値として扱われなくなったので、 av_store(av, 0, &PL_sv_undef) は読み込み専用未定義スカラを保持する配列の 要素 0 になります。 C<$array[0] = anything> は croak になり、C<\$array[0]> は C<\undef> との 等価性を比較します。 =item * =begin original The SV returned by HeSVKEY_force() now correctly reflects the UTF8ness of the underlying hash key when that key is not stored as a SV. [perl #79074] =end original HeSVKEY_force() から返された SV は、キーが SV として保管されていないときに 基となるハッシュキーの UTF8 性を正しく反映するようになりました。 [perl #79074] =item * =begin original Certain rarely used functions and macros available to XS code are now deprecated. These are: C (use C instead), C (use C instead), C (this did not work properly anyway), and C (this did not work properly anyway). =end original XS コードで利用可能な一部のめったに使われない関数とマクロが 廃止予定になりました。 その一覧は: C (代わりに C を使ってください)、 C (代わりに C を使ってください)、 C (どちらにしろ適切に動作していませんでした)、 and C (どちらにしろ適切に動作していませんでした) です。 =begin original Starting in this release, almost never does application code need to distinguish between the platform's character set and Latin1, on which the lowest 256 characters of Unicode are based. New code should not use C (use C instead), nor C (use C instead), =end original このリリースから、アプリケーションでプラットフォームの文字集合と Unicode の 最下位の 256 文字を基にした Latin1 を区別する必要はまずなくなりました。 新しいコードは C (代わりに C を 使ってください) や C (代わりに C を 使ってください) を使うべきではありません。 =item * =begin original The Makefile shortcut targets for many rarely (or never) used testing and profiling targets have been removed, or merged into the only other Makefile target that uses them. Specifically, these targets are gone, along with documentation that referenced them or explained how to use them: =end original 多くのめったに(あるいは全く)使われないテストとプロファイリングのための Makefile のショートカットターゲットは削除されるか、それを使っている その他の Makefile ターゲットのみにまとめられました。 特に、以下のターゲットは、それを参照していたり使い方を説明したりしている 文書と共に削除されました: check.third check.utf16 check.utf8 coretest minitest.prep minitest.utf16 perl.config.dashg perl.config.dashpg perl.config.gcov perl.gcov perl.gprof perl.gprof.config perl.pixie perl.pixie.atom perl.pixie.config perl.pixie.irix perl.third perl.third.config perl.valgrind.config purecovperl pureperl quantperl test.deparse test.taintwarn test.third test.torture test.utf16 test.utf8 test_notty.deparse test_notty.third test_notty.valgrind test_prep.third test_prep.valgrind torturetest ucheck ucheck.third ucheck.utf16 ucheck.valgrind utest utest.third utest.utf16 utest.valgrind =begin original It's still possible to run the relevant commands by "hand" - no underlying functionality has been removed. =end original 「手動で」関連するコマンドを実行することはまだ可能です - 基となる機能は 削除されていません。 =item * =begin original It is now possible to keep Perl from initializing locale handling. For the most part, Perl doesn't pay attention to locale. (See L.) Nonetheless, until now, on startup, it has always initialized locale handling to the system default, just in case the program being executed ends up using locales. (This is one of the first things a locale-aware program should do, long before Perl knows if it will actually be needed or not.) This works well except when Perl is embedded in another application which wants a locale that isn't the system default. Now, if the environment variable C is set at the time Perl is started, this initialization step is skipped. Prior to this, on Windows platforms, the only workaround for this deficiency was to use a hacked-up copy of internal Perl code. Applications that need to use older Perls can discover if the embedded Perl they are using needs the workaround by testing that the C preprocessor symbol C is not defined. [RT #38193] =end original Perl がロケールの扱いを初期化しないようにすることができるようになりました。 ほとんどの部分で、Perl はロケールに関心を払いません。 (L を参照してください。) にも関わらず、今まで、プログラムが結局ロケールを使う場合に備えて、 起動時にロケールの扱いをシステムデフォルトに初期化していました。 (これはロケールを認識するプログラムが最初に、実際に必要かどうかを Perl が 知るずっと前にするべきことの一つです。) これは、Perl がシステムデフォルト以外のロケールを使いたい他の アプリケーションに組み込まれている場合以外はうまく動作します。 Perl の起動時に環境変数 C が設定されていると、この 初期化ステップが飛ばされるようになりました。 これ以前では、Windows プラットフォームでのこの欠陥の回避策は、内部の Perl コードを修正したものを使うことだけでした。 古い Perl を使う必要のあるアプリケーションは、C プリプロセッサシンボル C が定義されていないことをテストすることで、組み込み Perl が回避策を使う必要があるかを発見できます。 (RT #38193) =item * =begin original C and C have been removed. They were not used anywhere and are not part of the API. For XS modules, they are now #defined as 0. =end original C と C は削除されました。 これらはどこでも使われておらず、API の一部ではありませんでした。 XS モジュールに対しては、これらは 0 に #define されるようになりました。 =item * =begin original C, which usually croaks on read-only values, used to allow read-only values to be modified at compile time. This has been changed to croak on read-only values regardless. This change uncovered several core bugs. =end original 通常は読み込み専用値を croak する C は、コンパイル時に 読み込み専用値を変更することが可能でした。 これはとにかく読み込み専用値を croak するように変更されました。 この変更によりいくつかのコアのバグが明らかになりました。 =item * =begin original Perl's new copy-on-write mechanism (which is now enabled by default), allows any C scalar to be automatically upgraded to a copy-on-write scalar when copied. A reference count on the string buffer is stored in the string buffer itself. =end original Perl の新しいコピーオンライト機構 (デフォルトで有効になりました) は、 任意の C スカラを、コピーされたときに自動的にコピーオンライトスカラに 昇格できるようになりました。 文字列バッファの参照カウントは文字列バッファ自身に保管されるようになりました。 =begin original For example: =end original 例えば: $ perl -MDevel::Peek -e'$a="abc"; $b = $a; Dump $a; Dump $b' SV = PV(0x260cd80) at 0x2620ad8 REFCNT = 1 FLAGS = (POK,IsCOW,pPOK) PV = 0x2619bc0 "abc"\0 CUR = 3 LEN = 16 COW_REFCNT = 1 SV = PV(0x260ce30) at 0x2620b20 REFCNT = 1 FLAGS = (POK,IsCOW,pPOK) PV = 0x2619bc0 "abc"\0 CUR = 3 LEN = 16 COW_REFCNT = 1 =begin original Note that both scalars share the same PV buffer and have a COW_REFCNT greater than zero. =end original 両方のスカラは同じ PV バッファを共有し、COW_REFCNT が 0 より大きいことに 注意してください。 =begin original This means that XS code which wishes to modify the C buffer of an SV should call C or similar first, to ensure a valid (and unshared) buffer, and to call C afterwards. This in fact has always been the case (for example hash keys were already copy-on-write); this change just spreads the COW behaviour to a wider variety of SVs. =end original つまり、SV の C バッファを修正したい XS コードは、バッファを有効な (かつ共有されてない)ものにするために C または同様のものをまず 呼び出し、その後で C を呼び出すべきということです。 これは実際にはいつも当てはまります (例えばハッシュキーは常に コピーオンライトです); この変更は単に COW の振る舞いを SV のより広い亜種に 広げます。 =begin original One important difference is that before 5.18.0, shared hash-key scalars used to have the C flag set; this is no longer the case. =end original 5.18.0 以前との大きな違いの一つは、共有ハッシュキースカラは C フラグが設定されていたことです; 今ではこれは当てはまりません。 =begin original This new behaviour can still be disabled by running F with B<-Accflags=-DPERL_NO_COW>. This option will probably be removed in Perl 5.22. =end original この新しい振る舞いは B<-Accflags=-DPERL_NO_COW> 付きで F を 実行することでまだ無効にできます。 このオプションはおそらく Perl 5.22 で削除されます。 =item * =begin original C is now a constant. The switch this variable provided (to enable/disable the pre-match copy depending on whether C<$&> had been seen) has been removed and replaced with copy-on-write, eliminating a few bugs. =end original C は定数になりました。 この変数が提供していた (C<$&> が見えるかどうかに依存したマッチング前のコピーを 有効/無効にする) スイッチは削除されてコピーオンライトで置き換えられ、 いくつかのバグが修正されました。 =begin original The previous behaviour can still be enabled by running F with B<-Accflags=-DPERL_SAWAMPERSAND>. =end original 以前の振る舞いは B<-Accflags=-DPERL_SAWAMPERSAND> 付きで F を 実行することでまだ有効にできます。 =item * =begin original The functions C, C and C have been removed. It is unclear why these functions were ever marked as I, part of the API. XS code can't call them directly, as it can't rely on them being compiled. Unsurprisingly, no code on CPAN references them. =end original 関数 C, C, C は削除されました。 なぜこれらの関数が API の一部として I とマークされたかははっきりしません。 XS コードは直接これらを呼び出せません; これらがコンパイルされているかどうかに 依存できないからです。 驚くには値しませんが、CPAN でこれらを参照しているコードはありません。 =item * =begin original The signature of the C regex function has changed; the function pointer C in the regex engine plugin structure has also changed accordingly. A new parameter, C has been added; this has the same meaning as the same-named parameter in C. Previously intuit would try to guess the start of the string from the passed SV (if any), and would sometimes get it wrong (e.g. with an overloaded SV). =end original C 正規表現関数のシグネチャが変更されました; 正規表現プラグイン構造体の C 関数ポインタも同様に変更されました。 新しい引数 C が追加されました; これは C の 同じ名前の引数と同じ意味を持ちます。 以前は intuit は (もしあれば) 渡された SV から文字列の先頭を推測していて、 (例えばオーバーロードされた SV のときに) 時々間違っていました。 =item * =begin original The signature of the C regex function has changed; the function pointer C in the regex engine plugin structure has also changed to match. The C parameter now has type C to better support 64-bit systems. =end original C 正規表現関数のシグネチャが変更されました; 正規表現エンジンプラグイン構造体の関数ポインタ C も、一致するように 変更されました。 C 引数は、64 ビットシステムへのよりよい対応のために C 型に なりました。 =item * =begin original XS code may use various macros to change the case of a character or code point (for example C). Only a couple of these were documented until now; and now they should be used in preference to calling the underlying functions. See L. =end original XS コードは、(例えば C のように)文字や符号位置の 大文字小文字を変えるために様々なマクロが使えます。 これらのうち二つのみがこれまで文書化されていました; そしてこれらは基となる 関数を呼び出すよりも優先して使うべきです。 L を参照してください。 =item * =begin original The code dealt rather inconsistently with uids and gids. Some places assumed that they could be safely stored in UVs, others in IVs, others in ints. Four new macros are introduced: SvUID(), sv_setuid(), SvGID(), and sv_setgid() =end original コードは uid と gid に関してかなり一貫性なく扱っていました。 ある場所では安全に UV に保管できると仮定し、ある場所では IV に、ある場所では int でした。 四つの新しいマクロが導入されました: SvUID(), sv_setuid(), SvGID(), sv_setgid() =item * =begin original C has been added to the API. It is similar to C, but supports long strings on 64-bit platforms. =end original C が API に追加されました。 これは C と似ていますが、64 ビットプラットフォームでの長い文字列に 対応しています。 =item * =begin original C can now be used by perl embedders or other XS code to have perl C or C on an attempted exit. [perl #52000] =end original C は、perl が終了しようとしたときに C または C を 行うために perl 組み込み者やその他の XS コードによって 使われるようになりました。 [perl #52000] =item * =begin original Compiling with C<-Accflags=-PERL_BOOL_AS_CHAR> now allows C99 and C++ compilers to emulate the aliasing of C to C that perl does for C89 compilers. [perl #120314] =end original perl が C89 コンパイラに対して C から C への別名を エミュレートするための C<-Accflags=-PERL_BOOL_AS_CHAR> 付きのコンパイルは、 C99 と C++ コンパイラで動作するようになりました。 [perl #120314] =item * =begin original The C argument in L, L, L, and L and their older wrappers sv_2pv, sv_2iv, sv_2uv, sv_2nv, is now non-NULL. Passing NULL now will crash. When the non-NULL marker was introduced en masse in 5.9.3 the functions were marked non-NULL, but since the creation of the SV API in 5.0 alpha 2, if NULL was passed, the functions returned 0 or false-type values. The code that supports C argument being non-NULL dates to 5.0 alpha 2 directly, and indirectly to Perl 1.0 (pre 5.0 api). The lack of documentation that the functions accepted a NULL C was corrected in 5.11.0 and between 5.11.0 and 5.19.5 the functions were marked NULLOK. As an optimization the NULLOK code has now been removed, and the functions became non-NULL marked again, because core getter-type macros never pass NULL to these functions and would crash before ever passing NULL. =end original L, L, L, L およびこれらの古いラッパーである sv_2pv, sv_2iv, sv_2uv, sv_2nv の C 引数は非 NULL になりました。 NULL を渡すとクラッシュするようになりました。 非 NULL マーカーが 5.9.3 に一斉に導入されたとき、これらの関数は非 NULL と マークされましたが、5.0 alpha 2 で SV API が作成されたときから、NULL が 渡されると、これらの関数は 0 または偽の型の値を返していました。 非 NULL の C 引数に対応するコードは直接的には 5.0 alpha 2 から、 間接的には Perl 1.0 (5.0 以前の API) から始まります。 この関数が NULL C を受け付けるという文書の欠如は 5.11.0 で修正され、 5.11.0 から 5.19.5 では関数は NULLOK とマークされました。 NULLOK コードの最適化は削除され、この関数は再び非 NULL として マークされました; コアの getter 型のマクロは決してこれらの関数に NULL を 渡すことはなく、以前は NULL を渡すとクラッシュしていたからです。 =begin original The only way a NULL C can be passed to sv_2*v* functions is if XS code directly calls sv_2*v*. This is unlikely as XS code uses Sv*V* macros to get the underlying value out of the SV. One possible situation which leads to a NULL C being passed to sv_2*v* functions, is if XS code defines its own getter type Sv*V* macros, which check for NULL B dereferencing and checking the SV's flags through public API Sv*OK* macros or directly using private API C, and if C is NULL, then calling the sv_2*v functions with a NULL litteral or passing the C containing a NULL value. =end original sv_2*v* 関数に NULL C を渡す唯一の方法は、XS コードが直接 sv_2*v* を 呼び出すことです。 SV から基となる値を取得するために XS コードが Sv*V* マクロを使うことは ありそうもありません。 NULL C が sv_2*v* 関数に渡されることになる一つの可能性は、 XS コードが、デリファレンスする B<前に> NULL チェックをする 独自のゲッター型 Sv*V* マクロを定義しているということです; 公式 API の Sv*OK* マクロかプライベート API である C を直接使って SV のフラグをチェックし、C が NULL の場合、NULL リテラルまたは NULL 値を 含む C で sv_2*v 関数を呼び出すことです。 =item * =begin original newATTRSUB is now a macro =end original newATTRSUB はマクロになりました =begin original The public API newATTRSUB was previously a macro to the private function Perl_newATTRSUB. Function Perl_newATTRSUB has been removed. newATTRSUB is now macro to a different internal function. =end original 公式 API である newATTRSUB は以前はプライベート関数 Perl_newATTRSUB への マクロでした。 関数 Perl_newATTRSUB は削除されました。 newATTRSUB は異なる内部関数へのマクロになりました。 =item * =begin original Changes in warnings raised by C =end original C で発生する警告の変更 =begin original This bottom level function decodes the first character of a UTF-8 string into a code point. It is accessible to C level code, but it's discouraged from using it directly. There are higher level functions that call this that should be used instead, such as L. For completeness though, this documents some changes to it. Now, tests for malformations are done before any tests for other potential issues. One of those issues involves code points so large that they have never appeared in any official standard (the current standard has scaled back the highest acceptable code point from earlier versions). It is possible (though not done in CPAN) to warn and/or forbid these code points, while accepting smaller code points that are still above the legal Unicode maximum. The warning message for this now includes the code point if representable on the machine. Previously it always displayed raw bytes, which is what it still does for non-representable code points. =end original この最下位層の関数は UTF-8 文字列の最初の文字を符号位置にデコードします。 これは C レベルのコードからアクセス可能ですが、これを直接使うのは 非推奨です。 L のように、代わりに使うべき、これを呼び出す 高レベル関数があります。 完全性のために、これは少し変更されて文書化されました。 不正データのためのテストはその他の潜在的な問題のためのテストの前に 行われるようになりました。 これらの問題の一つは、どの公式標準にも現れないほど大きい符号位置に 関するものです (現在の標準は以前のバージョンでの最大の受け入れられる符号位置に 規模を縮小しています)。 これらの符号位置は警告または禁止しますが、より小さい符号位置だけれどもまだ 正当な Unicode の条件よりは上のものは受け入れる可能性はあります (しかし CPAN にはありません)。 このための警告メッセージは、このマシンが表現できるなら符号位置を 含むようになりました。 以前は常に生のバイト列を表示しています; 表現できない符号位置に関しては 今でも行っていることです。 =item * =begin original Regexp engine changes that affect the pluggable regex engine interface =end original プラグ可能正規表現インターフェ−スに影響する正規表現エンジンの変更 =begin original Many flags that used to be exposed via regexp.h and used to populate the extflags member of struct regexp have been removed. These fields were technically private to Perl's own regexp engine and should not have been exposed there in the first place. =end original regexp.h 経由で露出していて、struct regexp の extflags メンバを埋めるために 使われていた多くのフラグが削除されました。 これらのフィールドは技術的には Perl 自身の正規表現のためのプライベートな もので、第一にここで露出するべきものではありません。 =begin original The affected flags are: =end original 影響を受けるフラグは: RXf_NOSCAN RXf_CANY_SEEN RXf_GPOS_SEEN RXf_GPOS_FLOAT RXf_ANCH_BOL RXf_ANCH_MBOL RXf_ANCH_SBOL RXf_ANCH_GPOS =begin original As well as the follow flag masks: =end original 以下のフラグマスクも影響します: RXf_ANCH_SINGLE RXf_ANCH =begin original All have been renamed to PREGf_ equivalents and moved to regcomp.h. =end original これら全ては PREGf_ 等価物にリネームされて regcomp.h に移動しました。 =begin original The behavior previously achieved by setting one or more of the RXf_ANCH_ flags (via the RXf_ANCH mask) have now been replaced by a *single* flag bit in extflags: =end original 以前 (RXf_ANCH マスク経由で) RXf_ANCH_ フラグを設定することによって 達成されていた振る舞いは、extflags の「単一の」フラグビットで 置き換えられました: RXf_IS_ANCHORED =begin original pluggable regex engines which previously used to set these flags should now set this flag ALONE. =end original プラグ可能な正規表現エンジンは、以前はこれらのフラグを設定することで 使っていましたが、このフラグを「単一で」使うようになりました。 =item * =begin original The Perl core now consistently uses C ("the top index of an array") as a more clearly-named synonym for C. =end original Perl コアは、C に対してより明確に命名された同義語である C (「配列の先頭のインデックス」) を一貫して使うようになりました。 =item * =begin original The obscure interpreter variable C is expected to be removed early in the 5.21.x development series, so that Perl 5.22.0 will not provide it to XS authors. While the variable still exists in 5.20.0, we hope that this advance warning of the deprecation will help anyone who is using that variable. =end original 不明瞭なインタプリタ変数 C は 5.21.x 開発リリースの初期に 削除される予定なので、Perl 5.22.0 ではこれは XS 作者に提供されません。 この変数は 5.20.0 でもまだ存在しますが、事前の廃止予定警告がこの変数を 使っている人の助けになることを期待しています。 =back =head1 Selected Bug Fixes (バグ修正の抜粋) =head2 Regular Expressions (正規表現) =over 4 =item * =begin original Fixed a small number of regexp constructions that could either fail to match or crash perl when the string being matched against was allocated above the 2GB line on 32-bit systems. [RT #118175] =end original マッチングされる文字列が 32 ビットシステムで 2GB の線よりも上位に 割り当てられていたときにマッチングに失敗したり perl がクラッシュしたりしていた 少数の正規表現構文が修正されました。 [RT #118175] =item * =begin original Various memory leaks involving the parsing of the C<(?[...])> regular expression construct have been fixed. =end original C<(?[...])> 正規表現構文のパースに関する様々なメモリリークが修正されました。 =item * =begin original C<(?[...])> now allows interpolation of precompiled patterns consisting of C<(?[...])> with bracketed character classes inside (C<$pat = S S>). Formerly, the brackets would confuse the regular expression parser. =end original C<(?[...])> は、内側に大かっこ文字クラスを含む、C<(?[...])> 形式の事前 コンパイル済みパターンでの変数展開が可能になりました (C<$pat = S S>)。 以前は、大かっこは正規表現パーサを混乱させていました。 =item * =begin original The "Quantifier unexpected on zero-length expression" warning message could appear twice starting in Perl v5.10 for a regular expression also containing alternations (e.g., "a|b") triggering the trie optimisation. =end original Perl v5.10 から、trie 最適化を引き起こす代替 (例えば "a|b") を含む正規表現に 対して "Quantifier unexpected on zero-length expression" 警告メッセージが 2 回出力されることがありました。 =item * =begin original Perl v5.18 inadvertently introduced a bug whereby interpolating mixed up- and down-graded UTF-8 strings in a regex could result in malformed UTF-8 in the pattern: specifically if a downgraded character in the range C<\x80..\xff> followed a UTF-8 string, e.g. =end original Perl v5.18 は不注意で、昇格された UTF-8 文字列と降格された UTF-8 文字列を 正規表現で混ぜると、パターン中に不正な UTF-8 が生成されるというバグが 導入されていました: 特に C<\x80..\xff> の範囲の降格された文字が UTF-8 文字列に 引き続く場合です; 例えば utf8::upgrade( my $u = "\x{e5}"); utf8::downgrade(my $d = "\x{e5}"); /$u$d/ [RT #118297] =item * =begin original In regular expressions containing multiple code blocks, the values of C<$1>, C<$2>, etc., set by nested regular expression calls would leak from one block to the next. Now these variables always refer to the outer regular expression at the start of an embedded block [perl #117917]. =end original 複数のコードブロックを含む正規表現で、ネストした正規表現によって設定される C<$1>, C<$2> などの値はあるブロックから次のブロックにリークしていました。 これらの変数は、組み込みブロックの開始時の外側の正規表現を 参照するようになりました [perl #117917]。 =item * =begin original C was broken in Perl 5.18.0; the C

flag was ignored. This has been fixed. [perl #118213] =end original C は Perl 5.18.0 で壊れていました; C

フラグは無視されていました。 これは修正されました。 [perl #118213] =item * =begin original Starting in Perl 5.18.0, a construct like C would have its C<#> incorrectly interpreted as a comment. The code block would be skipped, unparsed. This has been corrected. =end original Perl 5.18.0 から、C のような構文は C<#> を誤ってコメントとして 解釈していました。 コードブロックは読み飛ばされ、パースされていませんでした。 これは修正されました。 =item * =begin original Starting in Perl 5.001, a regular expression like C or C would have its C<#> incorrectly interpreted as a comment, so the variable would not interpolate. This has been corrected. [perl #45667] =end original Perl 5.001 から、C または C のような正規表現は C<#> を 誤ってコメントとして解釈していて、変数が展開されていませんでした。 これは修正されました。 [perl #45667] =item * =begin original Perl 5.18.0 inadvertently made dereferenced regular expressions S<(C<${ qr// }>)> false as booleans. This has been fixed. =end original Perl 5.18.0 では不注意で、デリファレンスされた正規表現 S<(C<${ qr// }>)> が 真偽値で偽になっていました。 これは修正されました。 =item * =begin original The use of C<\G> in regular expressions, where it's not at the start of the pattern, is now slightly less buggy (although it is still somewhat problematic). =end original 正規表現でのパターンの先頭でない位置での C<\G> の使用は、少しバグが減りました (しかしまだ問題があります)。 =item * =begin original Where a regular expression included code blocks (C), and where the use of constant overloading triggered a re-compilation of the code block, the second compilation didn't see its outer lexical scope. This was a regression in Perl 5.18.0. =end original コードブロックを含む正規表現 (C) で、定数のオーバーロードが コードブロックの再コンパイルを引き起こすとき、2 回目のコンパイルがその 外側のレキシカルスコープから見えていませんでした。 これは Perl 5.18.0 の退行です。 =item * =begin original The string position set by C could shift if the string changed representation internally to or from utf8. This could happen, e.g., with references to objects with string overloading. =end original 文字列の内部表現が utf8 との間で変更された場合、C で設定される 文字列位置がずれることがありました。 これは例えば、文字列でオーバーロードしたオブジェクトへのリファレンスで 起こります。 =item * =begin original Taking references to the return values of two C calls with the same argument, and then assigning a reference to one and C to the other, could result in assertion failures or memory leaks. =end original 同じ引数で呼び出した 2 回の C 呼び出しの返り値のリファレンスを取り、 それから片方にリファレンスを代入してもう片方に C を代入すると、 アサート失敗やメモリリークを引き起こすことがありました。 =item * =begin original Elements of @- and @+ now update correctly when they refer to non-existent captures. Previously, a referenced element (C<$ref = \$-[1]>) could refer to the wrong match after subsequent matches. =end original 存在しない捕捉を参照している @- と @+ の要素は正しく 更新されるようになりました。 以前は、引き続くマッチングの後、参照された要素 (C<$ref = \$-[1]>) は間違った マッチングを参照することがありました。 =item * =begin original The code that parses regex backrefs (or ambiguous backref/octals) such as \123 did a simple atoi(), which could wrap round to negative values on long digit strings and cause segmentation faults. This has now been fixed. [perl #119505] =end original \123 のような、正規表現後方参照 (またはあいまいな後方参照/ 8 進数) を パースするコードは、長い 10 進文字列の負数が回り込むかもしれない、単なる atoi() を行っていて、セグメンテーションフォルトを引き起こしていました。 これは修正されました。 [perl #119505] =item * =begin original Assigning another typeglob to C<*^R> no longer makes the regular expression engine crash. =end original 他の型グロブを C<*^R> に代入しても正規表現エンジンは クラッシュしなくなりました。 =item * =begin original The C<\N> regular expression escape, when used without the curly braces (to mean C<[^\n]>), was ignoring a following C<*> if followed by whitespace under /x. It had been this way since C<\N> to mean C<[^\n]> was introduced in 5.12.0. =end original (C<[^\n]> を意味する) 中かっこなしで使われた C<\N> 正規表現エスケープは、 /x の元で空白が引き続くと、引き続く C<*> を無視していました。 5.12.0 で C<\N> が C<[^\n]> を意味するようになってからこのように なっていました。 =item * =begin original C, C and C now work when a wide character is used as the delimiter. [perl #120463] =end original C, C, C は、デリミタとしてワイド文字を使っても 動作するようになりました。 [perl #120463] =item * =begin original Some cases of unterminated (?...) sequences in regular expressions (e.g., C) have been fixed to produce the proper error message instead of "panic: memory wrap". Other cases (e.g., C) have yet to be fixed. =end original (C のような) 正規表現内の終端されていない (?...) 並びの一部の場合は、 "panic: memory wrap" ではなく、適切なエラーメッセージを出力するように 修正されました。 (C のような) その他の場合はまだ修正されていません。 =item * =begin original When a reference to a reference to an overloaded object was returned from a regular expression C<(??{...})> code block, an incorrect implicit dereference could take place if the inner reference had been returned by a code block previously. =end original オーバーロードされたオブジェクトへのリファレンスへのリファレンスが 正規表現 C<(??{...})> コードブロックから返されたとき、内側のリファレンスが 以前コードブロックで返されたものである場合に誤った暗黙のデリファレンスが 行われていました。 =item * =begin original A tied variable returned from C<(??{...})> sees the inner values of match variables (i.e., the $1 etc. from any matches inside the block) in its FETCH method. This was not the case if a reference to an overloaded object was the last thing assigned to the tied variable. Instead, the match variables referred to the outer pattern during the FETCH call. =end original C<(??{...})> から返された tie された変数は、その FETCH メソッド内で 内側のマッチング変数 (つまり、ブロックの内側でマッチングしたものの $1 など) を 見ています。 これは、オーバーロードされたオブジェクトへのリファレンスが tie された変数へ 代入された最後のものである場合には当てはまっていませんでした。 代わりに、マッチング変数は FETCH 呼び出しの間外側のパターンを 参照していました。 =item * =begin original Fix unexpected tainting via regexp using locale. Previously, under certain conditions, the use of character classes could cause tainting when it shouldn't. Some character classes are locale-dependent, but before this patch, sometimes tainting was happening even for character classes that don't depend on the locale. [perl #120675] =end original ロケールを使った正規表現による想定しない汚染が修正されました。 以前は、ある種の状況では、文字クラスを使うと汚染されるべきではないときに 汚染を引き起こしていました。 一部の文字クラスはロケールに依存していますが、この修正の前では、ロケールに 依存していない文字クラスでも時々汚染が起きていました。 [perl #120675] =item * =begin original Under certain conditions, Perl would throw an error if in an lookbehind assertion in a regexp, the assertion referred to a named subpattern, complaining the lookbehind was variable when it wasn't. This has been fixed. [perl #120600], [perl #120618]. The current fix may be improved on in the future. =end original ある種の条件で、正規表現中の後方参照のアサートで、アサートが名前付き 部分パターンを参照し、後方参照の変数がないというエラーを出力していました。 これは修正されました。 [perl #120600], [perl #120618]。 現在の修正は将来改良される予定です。 =item * =begin original C<$^R> wasn't available outside of the regular expression that initialized it. [perl #121070] =end original C<$^R> は、これを初期化した正規表現の外側で利用可能ではありませんでした。 [perl #121070] =item * =begin original A large set of fixes and refactoring for re_intuit_start() was merged, the highlights are: =end original re_intuit_start() に対する多くの修正とリファクタリングがマージされました; 注目点は: =over =item * =begin original Fixed a panic when compiling the regular expression C. =end original C をコンパイルしたときの panic が修正されました。 =item * =begin original Fixed a performance regression when performing a global pattern match against a UTF-8 string. [perl #120692] =end original UTF-8 文字列に対するグローバルなパターンマッチングを実行するときの性能上の 退行が修正されました。 [perl #120692] =item * =begin original Fixed another performance issue where matching a regular expression like C against a long UTF-8 string would unnecessarily calculate byte offsets for a large portion of the string. [perl #120692] =end original C のような正規表現で長い UTF-8 文字列をマッチングすると文字列の 大部分に対して不必要にバイトオフセットを計算するというもう一つの性能問題が 修正されました。 [perl #120692] =back =item * =begin original Fixed an alignment error when compiling regular expressions when built with GCC on HP-UX 64-bit. =end original HP-UX 64 ビットの GCC でビルドされたときに正規表現をコンパイルしたときの アライメントエラーが修正されました。 =item * =begin original On 64-bit platforms C can now be set to a value higher than 2**31-1. [perl #72766] =end original 64 ビットプラットフォームでは、C に 2**31-1 より大きい値を 設定できるようになりました。 [perl #72766] =back =head2 Perl 5 Debugger and -d (Perl 5 デバッガと -d) =over 4 =item * =begin original The debugger's C command been fixed. It was broken in the v5.18.0 release. The C command is aliased to the names C and C - all now work again. =end original デバッガの C コマンドは修正されました。 これは v5.18.0 リリースで壊れていました。 C コマンドは C と C への別名です - 全て再び 動作するようになりました。 =item * =begin original C<@_> is now correctly visible in the debugger, fixing a regression introduced in v5.18.0's debugger. [RT #118169] =end original v5.18.0 のデバッガで導入された対抗が修正され、C<@_> は正しくデバッガから 見えるようになりました。 [RT #118169] =item * =begin original Under copy-on-write builds (the default as of 5.20.0) C<< ${'_<-e'}[0] >> no longer gets mangled. This is the first line of input saved for the debugger's use for one-liners [perl #118627]. =end original コピーオンライトビルド (5.20.0 からのデフォルトです) で、C<< ${'_<-e'}[0] >> がおかしくならなくなりました。 デバッガが一行野郎のために保管している入力の最初の行です [perl #118627]。 =item * =begin original On non-threaded builds, setting C<${"_Efilename"}> to a reference or typeglob no longer causes C<__FILE__> and some error messages to produce a corrupt string, and no longer prevents C<#line> directives in string evals from providing the source lines to the debugger. Threaded builds were unaffected. =end original 非スレッドビルドで、C<${"_Efilename"}> にリファレンスや型グロブを 設定しても、C<__FILE__> や一部のエラーメッセージが壊れた文字列を出力したり 文字列 eval 中の C<#line> 指示子がデバッガにソース行を提供しなくなったり しなくなりました。 スレッド付きビルドでは影響しません。 =item * =begin original Starting with Perl 5.12, line numbers were off by one if the B<-d> switch was used on the #! line. Now they are correct. =end original Perl 5.12 から、#! 行で B<-d> オプションが使われていたときに行番号が 1 ずれていました。 これは正しくなりました。 =item * =begin original C<*DB::DB = sub {} if 0> no longer stops Perl's debugging mode from finding C subs declared thereafter. =end original C<*DB::DB = sub {} if 0> としても、Perl のデバッグモードが C サブルーチン宣言を探すのを止めなくなりました。 =item * =begin original C<%{'_<...'}> hashes now set breakpoints on the corresponding C<@{'_<...'}> rather than whichever array C<@DB::dbline> is aliased to. [perl #119799] =end original C<%{'_<...'}> ハッシュは、配列 C<@DB::dbline> が別名になっているものではなく、 対応する C<@{'_<...'}> にブレークポイントが設定されるようになりました。 [perl #119799] =item * =begin original Call set-magic when setting $DB::sub. [perl #121255] =end original $DB::sub を設定するときに set-magic を呼び出します。 [perl #121255] =item * =begin original The debugger's "n" command now respects lvalue subroutines and steps over them [perl #118839]. =end original デバッガの "n" コマンドは、左辺値サブルーチンとそれのステップオーバーを 認識するようになりました [perl #118839]。 =back =head2 Lexical Subroutines (レキシカルサブルーチン) =over 4 =item * =begin original Lexical constants (C) no longer crash when inlined. =end original レキシカル定数 (C) はインライン化されても クラッシュしなくなりました。 =item * =begin original Parameter prototypes attached to lexical subroutines are now respected when compiling sub calls without parentheses. Previously, the prototypes were honoured only for calls I parentheses. [RT #116735] =end original レキシカルサブルーチンに指定されたパラメータプロトタイプは、かっこなしの サブルーチン呼び出しのコンパイル時に認識されるようになりました。 以前は、プロトタイプはかっこ I<付き> の呼び出しのみで認識されていました。 [RT #116735] =item * =begin original Syntax errors in lexical subroutines in combination with calls to the same subroutines no longer cause crashes at compile time. =end original レキシカルサブルーチンの文法エラーと同じサブルーチンの呼び出しの組み合わせで コンパイル時にクラッシュを引き起こさなくなりました。 =item * =begin original Deep recursion warnings no longer crash lexical subroutines. [RT #118521] =end original 深い再帰の警告はレキシカルサブルーチンをクラッシュしなくなりました。 [RT #118521] =item * =begin original The dtrace sub-entry probe now works with lexical subs, instead of crashing [perl #118305]. =end original dtrace sub-entry プローブはレキシカルサブルーチンでもクラッシュせずに 動作するようになりました [perl #118305]。 =item * =begin original Undefining an inlinable lexical subroutine (C) would result in a crash if warnings were turned on. =end original インライン化可能なレキシカルサブルーチンを未定義化すると (C) 警告が有効のときにクラッシュしていました。 =item * =begin original An undefined lexical sub used as an inherited method no longer crashes. =end original 継承されたメソッドとして使われた未定義のレキシカルサブルーチンは クラッシュしなくなりました。 =item * =begin original The presence of a lexical sub named "CORE" no longer stops the CORE:: prefix from working. =end original "CORE" という名前のレキシカルサブルーチンがいても CORE:: 接頭辞の動作を 止めなくなりました。 =back =head2 Everything Else (その他全て) =over 4 =item * =begin original The OP allocation code now returns correctly aligned memory in all cases for C. Previously it could return memory only aligned to a 4-byte boundary, which is not correct for an ithreads build with 64 bit IVs on some 32 bit platforms. Notably, this caused the build to fail completely on sparc GNU/Linux. [RT #118055] =end original C の全ての場合で OP 割り当てコードは正しく位置合わせされた メモリを返すようになりました。 以前は 4 バイト境界にのみ位置合わせされたメモリを返していました; これは 一部の 32 ビットプラットフォームで 64 ビットの IV を持つ ithread ビルドで 正しくありません。 特に、これにより sparc GNU/Linux で完全にビルドに失敗していました。 [RT #118055] =item * =begin original Evaluating large hashes in scalar context is now much faster, as the number of used chains in the hash is now cached for larger hashes. Smaller hashes continue not to store it and calculate it when needed, as this saves one IV. That would be 1 IV overhead for every object built from a hash. [RT #114576] =end original スカラコンテキストでの大きなハッシュの評価は遥かに高速になりました; ハッシュ中の使っているチェーンの数は大きなハッシュでは キャッシュされるようになったからです。 より小さいハッシュではこれを保管せずに必要になったときに計算し、1 IV を 節約します。 これにより、ハッシュから構築されたオブジェクト毎に IV 1 個のオーバーヘッドが あります。 [RT #114576] =item * =begin original Perl v5.16 inadvertently introduced a bug whereby calls to XSUBs that were not visible at compile time were treated as lvalues and could be assigned to, even when the subroutine was not an lvalue sub. This has been fixed. [RT #117947] =end original Perl v5.16 では不注意で、コンパイル時には見えない XSUB の呼び出しは 左辺値として扱われ、たとえサブルーチンが左辺値サブルーチンでなくても 代入できるというバグが導入されていました。 これは修正されました。 [RT #117947] =item * =begin original In Perl v5.18.0 dualvars that had an empty string for the string part but a non-zero number for the number part starting being treated as true. In previous versions they were treated as false, the string representation taking precedeence. The old behaviour has been restored. [RT #118159] =end original Perl v5.18.0 では、文字列部分に空文字列を、数値部分で非 0 の値が設定されている 2 重変数は真として扱われるようになっていました。 以前のバージョンではこれは偽として扱われ、文字列表現が優先されていました。 古い振る舞いは復旧されました。 [RT #118159] =item * =begin original Since Perl v5.12, inlining of constants that override built-in keywords of the same name had countermanded C, causing subsequent mentions of the constant to use the built-in keyword instead. This has been fixed. =end original Perl v5.12 から、同じ名前の組み込みキーワードをオーバーライドした定数を インライン化すると、C を撤回して、引き続く定数への言及で 代わりに組み込みキーワードを使うようになっていました。 これは修正されました。 =item * =begin original The warning produced by C<-l $handle> now applies to IO refs and globs, not just to glob refs. That warning is also now UTF8-clean. [RT #117595] =end original C<-l $handle> によって生成される警告は、単にグロブリファレンスに対してでなく、 IO リファレンスとグロブに適用されるようになりました。 また、この警告は UTF8 クリーンになりました。 [RT #117595] =item * =begin original C no longer leaks memory. =end original C はメモリリークしなくなりました。 =item * =begin original C and C followed by a keyword prefixed with C now treat it as a keyword, and not as a subroutine or module name. [RT #24482] =end original C または C に C を前置したキーワードが引き続くと、 サブルーチンやモジュールの名前ではなくキーワードとして 扱われるようになりました。 [RT #24482] =item * =begin original Through certain conundrums, it is possible to cause the current package to be freed. Certain operators (C, C, C, C) could not cope and would crash. They have been made more resilient. [RT #117941] =end original ある種の難問によって、現在のパッケージが解放されるようにすることが 可能です。 一部の演算子 (C, C, C, C) はこれに対応できずに クラッシュしていました。 これらはより弾力的になりました。 [RT #117941] =item * =begin original Aliasing filehandles through glob-to-glob assignment would not update internal method caches properly if a package of the same name as the filehandle existed, resulting in filehandle method calls going to the package instead. This has been fixed. =end original グロブからグロブへの代入によるファイルハンドルの別名化は、ファイルハンドルと 同じ名前のパッケージがあると、内部メソッドキャッシュが適切に更新されず、 ファイルハンドル内のメソッド呼び出しがパッケージに向かっていました。 これは修正されました。 =item * =begin original C<./Configure -de -Dusevendorprefix> didn't default. [RT #64126] =end original C<./Configure -de -Dusevendorprefix> はデフォルトではありませんでした。 [RT #64126] =item * =begin original The C warning was listed in L as an C-category warning, but was enabled and disabled by the C category. On the other hand, the C category controlled its fatal-ness. It is now entirely handled by the C category. =end original C 警告は L で C カテゴリの 警告として扱われていましたが、C カテゴリによって有効化および 無効化されていました。 一方、C カテゴリではこれらを致命的エラーにするかどうかを 制御していました。 これは全体的に C カテゴリで扱われるようになりました。 =item * =begin original The "Replacement list is longer that search list" warning for C and C no longer occurs in the presence of the C flag. [RT #118047] =end original C と C に対する "Replacement list is longer that search list" 警告は C フラグがあるときには起こらなくなりました。 [RT #118047] =item * =begin original Stringification of NVs are not cached so that the lexical locale controls stringification of the decimal point. [perl #108378] [perl #115800] =end original NV の文字列化はキャッシュされなくなったので、レキシカルなロケールが小数点の 文字列化を制御するようになりました。 [perl #108378] [perl #115800] =item * =begin original There have been several fixes related to Perl's handling of locales. perl #38193 was described above in L. Also fixed is #118197, where the radix (decimal point) character had to be an ASCII character (which doesn't work for some non-Western languages); and #115808, in which C on failure returned an C which didn't warn about not being defined even if those warnings were enabled. =end original Perl のロケールの扱いに関するいくつかの修正が行われました。 perl #38193 は既に L に記述されています。 基数 (小数点) 文字が ASCII 文字である必要がある (これは一部の非西洋言語では 動作しません) #118197、C の失敗時に C が 返されたとき、警告が有効でも未定義警告が出なかった問題である #115808 が 修正されました。 =item * =begin original Compiling a C operator whose third argument is a named constant evaulating to 0 no longer causes the constant's value to change. =end original 3 番目の引数が 0 に評価される名前付き定数の C 演算子のコンパイルは 定数値の変更を引き起こさなくなりました。 =item * =begin original A named constant used as the second argument to C no longer gets coerced to a string if it is a reference, regular expression, dualvar, etc. =end original C の 2 番目の引数として使われた名前付き定数は、それがリファレンス、 正規表現、2 重変数などの場合に文字列に変換されなくなりました。 =item * =begin original A named constant evaluating to the undefined value used as the second argument to C no longer produces "uninitialized" warnings at compile time. It will still produce them at run time. =end original 未定義値に評価される名前付き定数が C の 2 番目の引数として使われたとき、 コンパイル時に "uninitialized" 警告を出力しなくなりました。 これは実行時にはまだ出力されます。 =item * =begin original When a scalar was returned from a subroutine in @INC, the referenced scalar was magically converted into an IO thingy, possibly resulting in "Bizarre copy" errors if that scalar continued to be used elsewhere. Now Perl uses an internal copy of the scalar instead. =end original @INC 内のサブルーチンからスカラが返されたとき、参照されたスカラはマジカルに IO ものに変換されて、このスカラが他の場所で使い続けられると "Bizarre copy" エラーが起こることがありました。 Perl はこのスカラの内部コピーを使うようになりました。 =item * =begin original Certain uses of the C operator are optimised to modify an array in place, such as C<@a = sort @a>. During the sorting, the array is made read-only. If a sort block should happen to die, then the array remained read-only even outside the C. This has been fixed. =end original C<@a = sort @a> のような C 演算子のある種の使用法では、その場で配列を 修正するように最適化されます。 ソートの間、この配列は読み込み専用になります。 ソートブロックが die した場合も、この配列は C の外側でも 読み込み専用のままになっていました。 これは修正されました。 =item * =begin original C<$a> and C<$b> inside a sort block are aliased to the actual arguments to C, so they can be modified through those two variables. This did not always work, e.g., for lvalue subs and C<$#ary>, and probably many other operators. It works now. =end original ソートブロックの内側の C<$a> と C<$b> は C の実際の引数への別名と なるので、これらは二つの変数を通して変更できます。 これは、例えば左辺値サブルーチンと C<$#ary>、およびおそらくその他の多くの 演算子では動作していませんでした。 これは動作するようになりました。 =item * =begin original The arguments to C are now all in list context. If the C itself were called in void or scalar context, then I, but not all, of the arguments used to be in void or scalar context. =end original C の引数は全てリストコンテキストになりました。 C が無効またはスカラコンテキストで呼び出された場合、常にではありませんが I<時々> 引数が無効またはスカラコンテキストになっていました。 =item * =begin original Subroutine prototypes with Unicode characters above U+00FF were getting mangled during closure cloning. This would happen with subroutines closing over lexical variables declared outside, and with lexical subs. =end original U+00FF を超える Unicode 文字のサブルーチンプロトタイプは、クロージャの クローン中に壊れていました。 これは外側で宣言された変数を閉じ込めているサブルーチンと、レキシカル サブルーチンで起きていました。 =item * =begin original C now treats its first argument the same way that method calls do: Typeglobs and glob references with non-empty IO slots are treated as handles, and strings are treated as filehandles, rather than packages, if a handle with that name exists [perl #113932]. =end original C は、最初の引数をメソッド呼び出しが行うのと同じように 扱うようになりました: 空でない IO スロットを持つ型グロブとグロブリファレンスは ハンドルとして扱われ、文字列は、その名前のハンドルが存在していれば、 パッケージではなくファイルハンドルとして扱われます [perl #113932]。 =item * =begin original Method calls on typeglobs (e.g., C<< *ARGV->getline >>) used to stringify the typeglob and then look it up again. Combined with changes in Perl 5.18.0, this allowed C<< *foo->bar >> to call methods on the "foo" package (like C<< foo->bar >>). In some cases it could cause the method to be called on the wrong handle. Now a typeglob argument is treated as a handle (just like C<< (\*foo)->bar >>), or, if its IO slot is empty, an error is raised. =end original (C<< *ARGV->getline >> のような) 型グロブに対するメソッド呼び出しは、 型グロブを文字列化してからもう一度検索していました。 Perl 5.18.0 での変更と組み合わせると、これにより C<< *foo->bar >> は (C<< foo->bar >> のように) "foo" パッケージの メソッドを呼び出していました。 場合によっては間違ったハンドルに対してメソッドが呼び出されていました。 型グロブ引数は (C<< (\*foo)->bar >> と同様) ハンドルとして扱われ、 IO スロットが空なら、エラーが発生するようになりました。 =item * =begin original Assigning a vstring to a tied variable or to a subroutine argument aliased to a nonexistent hash or array element now works, without flattening the vstring into a regular string. =end original v 文字列の、tie された変数および、存在しないハッシュや配列の要素への別名に なっているサブルーチン引数への代入は、v 文字列を通常の文字列に 平坦化することなく動作するようになりました。 =item * =begin original C, C, C and C did not work properly on subroutine arguments aliased to nonexistent hash and array elements [perl #77814, #27010]. =end original C, C, C, C は、存在しないハッシュと配列の要素への 別名であるサブルーチン引数で正しく動作していませんでした [perl #77814, #27010]。 =item * =begin original The C<< => >> fat arrow operator can now quote built-in keywords even if it occurs on the next line, making it consistent with how it treats other barewords. =end original C<< => >> 太矢印演算子は、次の行にあっても組み込みキーワードを クォートするようになりました; これにより他の裸の単語の扱い方と 一貫性を持つようになりました。 =item * =begin original Autovivifying a subroutine stub via C<\&$glob> started causing crashes in Perl 5.18.0 if the $glob was merely a copy of a real glob, i.e., a scalar that had had a glob assigned to it. This has been fixed. [perl #119051] =end original Perl 5.18.0 から、$glob が単に実際のグロブのコピーのとき、つまりそれに 代入されたグロブであるスカラのとき、C<\&$glob> 経由でサブルーチンスタブを 自動有効化するとクラッシュしていました。 これは修正されました。 [perl #119051] =item * =begin original Perl used to leak an implementation detail when it came to referencing the return values of certain operators. C used to display two different memory addresses, because the C<\> operator was copying the variable. Under threaded builds, it would also happen for constants (C). This has been fixed. [perl #21979, #78194, #89188, #109746, #114838, #115388] =end original ある種の演算子の返り値を参照するとき、実装の詳細を漏洩していました。 C は、C<\> 演算子は変数をコピーするので、 二つの異なるメモリアドレスを表示していました。 スレッド付きビルドでは、これは定数(C) でも起きていました。 これは修正されました。 [perl #21979, #78194, #89188, #109746, #114838, #115388] =item * =begin original The range operator C<..> was returning the same modifiable scalars with each call, unless it was the only thing in a C loop header. This meant that changes to values within the list returned would be visible the next time the operator was executed. [perl #3105] =end original 範囲演算子 C<..> は、C ループのヘッダに単一で書かれていない限り、 呼び出し毎に同じ変更可能なスカラを返していました。 これは、リストの中の変数の変更が次に演算子が実行されるときに 見えるということです。 [perl #3105] =item * =begin original Constant folding and subroutine inlining no longer cause operations that would normally return new modifiable scalars to return read-only values instead. =end original 定数畳み込みとサブルーチンのインライン化によって、通常新しい修正可能なスカラを 返す操作で代わりに読み込み専用の値を返す問題が修正されました。 =item * =begin original Closures of the form C are no longer inlined, causing changes to the variable to be ignored by callers of the subroutine. [perl #79908] =end original C 形式のクロージャはもはや インライン化されなくなりました; 変数の変更がサブルーチンの呼び出し側から無視されていました。 [perl #79908] =item * =begin original Return values of certain operators such as C would sometimes be shared between recursive calls to the same subroutine, causing the inner call to modify the value returned by C in the outer call. This has been fixed. =end original C のようなある種の演算子の返り値は同じサブルーチンの再帰呼び出しの間で 共有されることがあり、外側での C の呼び出しで返された値が内側の呼び出しで 変更されることがありました。 これは修正されました。 =item * =begin original C<__PACKAGE__> and constants returning a package name or hash key are now consistently read-only. In various previous Perl releases, they have become mutable under certain circumstances. =end original C<__PACKAGE__> とパッケージ名やハッシュキーを返す定数は一貫して 読み込み専用になりました。 以前の様々な Perl リリースでは、ある種の状況では変更可能になっていました。 =item * =begin original Enabling "used once" warnings no longer causes crashes on stash circularities created at compile time (C<*Foo::Bar::Foo:: = *Foo::>). =end original "used once" 警告を有効にしたときに、コンパイル時に作られたスタッシュの 循環参照 (C<*Foo::Bar::Foo:: = *Foo::>) でクラッシュしなくなりました。 =item * =begin original Undef constants used in hash keys (C undef; $h{+u}>) no longer produce "uninitialized" warnings at compile time. =end original ハッシュキーに使われた未定義定数 (C undef; $h{+u}>) は もはやコンパイル時に "uninitialized" 警告を出力しなくなりました。 =item * =begin original Modifying a substitution target inside the substitution replacement no longer causes crashes. =end original 置換の置き換え部の内側の置換ターゲットを変更してもクラッシュしなくなりました。 =item * =begin original The first statement inside a string eval used to use the wrong pragma setting sometimes during constant folding. C would randomly choose between Unicode, byte, and locale semantics. This has been fixed. =end original 文字列 eval の内側の最初の文は、定数畳み込みの間間違ったプラグマ設定を 使っていました。 C は Unicode、バイト、ロケール意味論をランダムに 選択していました。 これは修正されました。 =item * =begin original The handling of return values of @INC filters (subroutines returned by subroutines in @INC) has been fixed in various ways. Previously tied variables were mishandled, and setting $_ to a reference or typeglob could result in crashes. =end original @INC フィルタ (@INC 内のサブルーチンから返されたサブルーチン) の返り値の 扱いがいろいろ修正されました。 以前は tie された変数は扱いが間違っていて、$_ にリファレンスや型グロブを 設定するとクラッシュしていました。 =item * =begin original The C XS function has been fixed to work with tied scalars returning something other than a string. It used to return utf8 in those cases where C would. =end original C XS 関数は、文字列以外の何かを返す tie されたスカラで 動作するようになりました。 以前は C を返すべき場合で utf8 を返していました。 =item * =begin original Perl 5.18.0 inadvertently made C<--> and C<++> crash on dereferenced regular expressions, and stopped C<++> from flattening vstrings. =end original Perl 5.18.0 では不注意で、デリファレンスされた正規表現に対して C<--> と C<++> を行うとクラッシュして、フラット化したv文字列からの C<++> で 停止していました。 =item * =begin original C no longer dies with "Can't bless non-reference value" if its first argument is a tied reference. =end original C の最初の引数が tie されたリファレンスでも "Can't bless non-reference value" で die しなくなりました。 =item * =begin original C with an argument no longer skips copy-on-write scalars, regular expressions, typeglob copies, and vstrings. Also, when encountering those or read-only values, it no longer skips any array or hash with the same name. =end original 引数付きの C は、コピーオンライトスカラ、正規表現、型グロブのコピー、 v 文字列を飛ばさなくなりました。 また、これらや読み込み専用変数に遭遇したとき、同じ名前の配列やハッシュを 飛ばさなくなりました。 =item * =begin original C with an argument now skips scalars aliased to typeglobs (C). Previously it would corrupt memory or crash. =end original 引数付きの C は型グロブへの別名のスカラを飛ばすようになりました (C)。 以前はメモリを壊したりクラッシュしたりしていました。 =item * =begin original C and C were not respecting the bytes pragma. This was a regression from Perl 5.12. [perl #117355] =end original C と C は bytes プラグマを認識していませんでした。 これは Perl 5.12 からの退行でした。 [perl #117355] =item * =begin original Changes to C now update DESTROY caches in all classes, instead of causing classes that have already had objects destroyed to continue using the old sub. This was a regression in Perl 5.18. [perl #114864] =end original C を変更したとき、古いサブルーチンを使い続けるために既に 破壊されたオブジェクトを持つクラスだけではなく、全てのクラスの DESTROY キャッシュを更新するようになりました。 これは Perl 5.18 での退行でした。 [perl #114864] =item * =begin original All known false-positive occurrences of the deprecation warning "Useless use of '\'; doesn't escape metacharacter '%c'", added in Perl 5.18.0, have been removed. [perl #119101] =end original Perl 5.18.0 から追加された "Useless use of '\'; doesn't escape metacharacter '%c'" 廃止予定警告に関する、 知られている全ての偽陽性警告が削除されました。 [perl #119101] =item * =begin original The value of $^E is now saved across signal handlers on Windows. [perl #85104] =end original Windows で $^E の値はシグナルハンドラの間で保存されるようになりました。 [perl #85104] =item * =begin original A lexical filehandle (as in C) is usually given a name based on the current package and the name of the variable, e.g. "main::$fh". Under recursion, the filehandle was losing the "$fh" part of the name. This has been fixed. =end original (C のような)レキシカルファイルハンドルは、普通は現在の パッケージと変数の名前を元にした名前が与えられます; 例えば "main::$fh"。 再帰したとき、ファイルハンドルの名前のうち "$fh" の部分が失われていました。 これは修正されました。 =item * =begin original Uninitialized values returned by XSUBs are no longer exempt from uninitialized warnings. [perl #118693] =end original XSUB から返された未初期化値は未初期化警告から免れなくなりました。 [perl #118693] =item * =begin original C no longer erroneously produces a warning about void context. [perl #118753] =end original C は誤って無効コンテキストに関する警告が出力されなくなりました。 [perl #118753] =item * =begin original Passing C to a subroutine now causes @_ to contain the same read-only undefined scalar that C returns. Furthermore, C will now return true if C was the first argument. [perl #7508, #109726] =end original サブルーチンに C を渡すと、C が返すのと同じ読み込み専用の 未定義値が @_ に含まれるようになりました。 さらに、C は、最初の引数が C のときに真を 返すようになりました。 [perl #7508, #109726] =item * =begin original Passing a non-existent array element to a subroutine does not usually autovivify it unless the subroutine modifies its argument. This did not work correctly with negative indices and with non-existent elements within the array. The element would be vivified immediately. The delayed vivification has been extended to work with those. [perl #118691] =end original サブルーチンに存在しない配列要素を渡すと、普通はサブルーチンが引数を 変更するまで自動有効化されません。 これは、負のインデックスと配列に存在しない要素では正しく 動作していませんでした。 要素は直ちに有効化されていました。 遅延自動有効化はこれらで動作するように拡張されました。 [perl #118691] =item * =begin original Assigning references or globs to the scalar returned by $#foo after the @foo array has been freed no longer causes assertion failures on debugging builds and memory leaks on regular builds. =end original @foo 配列が解放された後、リファレンスやグロブを $#foo によって返された スカラに代入しても、デバッグビルドではアサート失敗を、通常ビルドでは メモリリークを引き起こさなくなりました。 =item * =begin original On 64-bit platforms, large ranges like 1..1000000000000 no longer crash, but eat up all your memory instead. [perl #119161] =end original 64 ビットプラットフォームで、1..1000000000000 のような大きな範囲は クラッシュしなくなりました; しかしメモリは使い尽くします。 [perl #119161] =item * =begin original C<__DATA__> now puts the C handle in the right package, even if the current package has been renamed through glob assignment. =end original C<__DATA__> は、たとえ現在のパッケージがグロブ代入によってリネームされていても 正しいパッケージに C ハンドルを置くようになりました。 =item * =begin original When C, C, C, C, C and C unwind the scope, it is possible for C recursively to call a subroutine or format that is currently being exited. It that case, sometimes the lexical variables inside the sub would start out having values from the outer call, instead of being undefined as they should. This has been fixed. [perl #119311] =end original C, C, C, C, C, C がスコープを巻き戻すとき、 現在終了しようとしているサブルーチンやフォーマットの C が再帰的に 予備される可能性がありました。 この場合、サブルーチンの内側のレキシカル変数が、未定義になるべきところで 外側の呼び出しからの値を持つようになることがありました。 これは修正されました。 [perl #119311] =item * =begin original ${^MPEN} is no longer treated as a synonym for ${^MATCH}. =end original ${^MPEN} はもはや ${^MATCH} の同義語として扱われなくなりました。 =item * =begin original Perl now tries a little harder to return the correct line number in C<(caller)[2]>. [perl #115768] =end original Perl は C<(caller)[2]> で正しい行番号を返すためにもう少し 努力するようになりました。 [perl #115768] =item * =begin original Line numbers inside multiline quote-like operators are now reported correctly. [perl #3643] =end original 複数行のクォート風演算子の内側の行番号を正しく報告するようになりました。 [perl #3643] =item * =begin original C<#line> directives inside code embedded in quote-like operators are now respected. =end original クォート風演算子に埋め込まれたコードの内側の C<#line> 指示子が 認識されるようになりました。 =item * =begin original Line numbers are now correct inside the second here-doc when two here-doc markers occur on the same line. =end original 二つのヒヤドキュメントマーカーが同じ行にあるときに、二つ目のヒヤドキュメントの 内側の行番号が正しくなりました。 =item * =begin original An optimization in Perl 5.18 made incorrect assumptions causing a bad interaction with the L CPAN module. If the module was loaded then lexical variables declared in separate statements following a C list might fail to be cleared on scope exit. =end original Perl 5.18 の最適化は間違った仮定をしていて、L CPAN モジュールで間違った相互作用を引き起こしていました。 モジュールが読み込まれてから、C に引き続く別の文でレキシカル変数を 宣言すると、スコープの終了時にクリアに失敗することがありました。 =item * =begin original C<&xsub> and C calls now allow the called subroutine to autovivify elements of @_. =end original C<&xsub> と C の呼び出しは、呼び出しサブルーチンに @_ の 自動有効化要素を許すようになりました。 =item * =begin original C<&xsub> and C no longer crash if *_ has been undefined and has no ARRAY entry (i.e. @_ does not exist). =end original C<&xsub> と C は、*_ が未定義で ARRAY ない (つまり @_ が 存在しない) 場合でもクラッシュしなくなりました。 =item * =begin original C<&xsub> and C now work with tied @_. =end original C<&xsub> と C は tie された @_ で動作するようになりました。 =item * =begin original Overlong identifiers no longer cause a buffer overflow (and a crash). They started doing so in Perl 5.18. =end original 長すぎる識別子でバッファオーバーフロー (およびクラッシュ) を 引き起こさなくなりました。 これは Perl 5.18 からそうなっていました。 =item * =begin original The warning "Scalar value @hash{foo} better written as $hash{foo}" now produces far fewer false positives. In particular, C<@hash{+function_returning_a_list}> and C<@hash{ qw "foo bar baz" }> no longer warn. The same applies to array slices. [perl #28380, #114024] =end original "Scalar value @hash{foo} better written as $hash{foo}" 警告は、偽陽性が 遥かに少なくなりました。 特に、C<@hash{+function_returning_a_list}> と C<@hash{ qw "foo bar baz" }> は 警告されなしました。 同じものは配列スライスにも適用されました。 [perl #28380, #114024] =item * =begin original C<$! = EINVAL; waitpid(0, WNOHANG);> no longer goes into an internal infinite loop. [perl #85228] =end original C<$! = EINVAL; waitpid(0, WNOHANG);> は内部の無限ループを 引き起こさなくなりました。 [perl #85228] =item * =begin original A possible segmentation fault in filehandle duplication has been fixed. =end original ファイルハンドルの複製で起こりえるセグメンテーションフォルトは修正されました。 =item * =begin original A subroutine in @INC can return a reference to a scalar containing the initial contents of the file. However, that scalar was freed prematurely if not referenced elsewhere, giving random results. =end original @INC 内のサブルーチンは、ファイルの初期化内容を含むスカラへのリファレンスを 返せます。 しかし、このスカラはどこからも参照されていないと解放が早すぎて、ランダムな 結果になります。 =item * =begin original C no longer returns values that the same statement has accumulated so far, fixing amongst other things the long-standing bug that C would try to return the @a, copying it like a scalar in the process and resulting in the error, "Bizarre copy of ARRAY in last." [perl #3112] =end original C は同じ文が蓄積していた値を返さなくなりました; 特にこれにより、 C が @a を返そうとして、これをプロセス中のスカラのように コピーして、"Bizarre copy of ARRAY in last." というエラーになっていました。 [perl #3112] =item * =begin original In some cases, closing file handles opened to pipe to or from a process, which had been duplicated into a standard handle, would call perl's internal waitpid wrapper with a pid of zero. With the fix for [perl #85228] this zero pid was passed to C, possibly blocking the process. This wait for process zero no longer occurs. [perl #119893] =end original 場合によっては、プロセスに対して開かれて、標準ハンドルに複製された ファイルハンドルを閉じると、pid 0 で perl の内部の waitpid ラッパーを 呼び出します。 [perl #85228] の修正によりこの PID 0 は C に渡され、プロセスが ブロックする可能性があります。 この、プロセス 0 を待つことは起きなくなりました。 [perl #119893] =item * =begin original C blocking indefinitely rather than the expected sleep time. This has now been fixed. [perl #120102] =end original C が想定されたスリープ時間ではなく無限にブロックされるといったことが 引き起こされていました。 これは修正されました。 [perl #120102] =item * =begin original The class name in C is now parsed correctly. In the case of the second character of the class name being followed by a digit (e.g. 'a1b') this used to give the error "Missing $ on loop variable". [perl #120112] =end original C のクラス名は正しくパースされるようになりました。 クラス名の 2 番目の文字が数字に引き続いていた場合 (例えば 'a1b')、 これは "Missing $ on loop variable" エラーが発生していました。 [perl #120112] =item * =begin original Perl 5.18.0 accidentally disallowed C<-bareword> under C and C. This has been fixed. [perl #120288] =end original Perl 5.18.0 では誤って C と C の元では C<-bareword> が許可されていませんでした。 これは修正されました。 [perl #120288] =item * =begin original C<-a> at the start of a line (or a hyphen with any single letter that is not a filetest operator) no longer produces an erroneous 'Use of "-a" without parentheses is ambiguous' warning. [perl #120288] =end original 行の先頭の C<-a> (またはファイルテスト演算子でないハイフンと任意の 1 文字) で 間違った 'Use of "-a" without parentheses is ambiguous' 警告を 出力しなくなりました。 [perl #120288] =item * =begin original Lvalue context is now properly propagated into bare blocks and C and C blocks in lvalue subroutines. Previously, arrays and hashes would sometimes incorrectly be flattened when returned in lvalue list context, or "Bizarre copy" errors could occur. [perl #119797] =end original 左辺値コンテキストは、裸のブロックおよび、左辺値サブルーチンの C と C ブロックに適切に伝搬するようになりました。 以前は、配列やハッシュは、左辺値リストコンテキストで返された場合に 時々間違って平坦化されたり、"Bizarre copy" エラーが起こっていたりしました。 [perl #119797] =item * =begin original Lvalue context is now propagated to the branches of C<||> and C<&&> (and their alphabetic equivalents, C and C). This means C now allows C to be modified through $_. =end original 左辺値コンテキストは C<||> と C<&&> (およびその英字の等価物である C と C) の枝に伝搬するようになりました。 つまり、C は $_ を通して C を 変更できるようになりました。 =item * =begin original C and C remember the last handle used; the former for the special C<_> filehandle, the latter for C<${^LAST_FH}>. C where *foo was the last handle passed to C or C could cause that handle to be forgotten if the handle were not opened yet. This has been fixed. =end original C と C は最後に使ったハンドルを覚えています; 前者は特殊な C<_> ファイルハンドル、後者は C<${^LAST_FH}> です。 *foo が C または C に渡された最後のハンドルのとき、 C とすると、このハンドルがまだ開かれていないと、 忘れられることがありました。 これは修正されました。 =item * =begin original Various cases of C, C etc. causing a crash have been fixed. [perl #54044] =end original C, C などの様々な場合のクラッシュは 修正されました。 [perl #54044] =item * =begin original Setting C<$!> to EACCESS before calling C could affect C's behaviour. This has been fixed. =end original C を呼び出す前に C<$!> に EACCESS を設定すると C の振る舞いに 影響することがありました。 これは修正されました。 =item * =begin original The "Can't use \1 to mean $1 in expression" warning message now only occurs on the right-hand (replacement) part of a substitution. Formerly it could happen in code embedded in the left-hand side, or in any other quote-like operator. =end original "Can't use \1 to mean $1 in expression" 警告メッセージは、置換の右側 (置き換え)部でのみ起こるようになりました。 以前は左側や、その他のクォート風演算子に組み込まれたコードで起きることが ありました。 =item * =begin original Blessing into a reference (C) has long been disallowed, but magical scalars for the second like C<$/> and those tied were exempt. They no longer are. [perl #119809] =end original リファレンスへの bless (C) は長い間 許されていませんでしたが、2 番目の引数として C<$/> のようなマジカル変数や tie されたものについては免れていました。 これは許されなくなりました。 [perl #119809] =item * =begin original Blessing into a reference was accidentally allowed in 5.18 if the class argument were a blessed reference with stale method caches (i.e., whose class had had subs defined since the last method call). They are disallowed once more, as in 5.16. =end original クラス引数が古いメソッドキャッシュを持つ (つまり最後のメソッド呼び出しの後に 定義されたサブルーチンがあるクラス) bless されたリファレンスのとき、 リファレンスへの bless は誤って許されていました。 これは再び 5.16 と同様に許されなくなりました。 =item * =begin original C<< $x->{key} >> where $x was declared as C no longer crashes if a Class::FIELDS subroutine stub has been declared. =end original $x が C と宣言されているときに、Class::FIELDS が宣言されていても C<< $x->{key} >> がクラッシュしなくなりました。 =item * =begin original C<@$obj{'key'}> and C<${$obj}{key}> used to be exempt from compile-time field checking ("No such class field"; see L) but no longer are. =end original C<@$obj{'key'}> と C<${$obj}{key}> はコンパイル時のフィールドチェック ("No such class field"; L を参照してください) から免れていましたが、 修正されました。 =item * =begin original A nonexistent array element with a large index passed to a subroutine that ties the array and then tries to access the element no longer results in a crash. =end original 大きなインデックスの存在しない配列要素を配列に tie されたサブルーチンに 渡してから、その要素にアクセスしてもクラッシュしなくなりました。 =item * =begin original Declaring a subroutine stub named NEGATIVE_INDICES no longer makes negative array indices crash when the current package is a tied array class. =end original 現在のパッケージが tie された配列クラスのときに NEGATIVE_INDICES と言う名前の サブルーチンを宣言しても負数の配列インデックスのクラッシュを 起こさなくなりました。 =item * =begin original Declaring a C, C, or C subroutine stub in the CORE::GLOBAL:: package no longer makes compilation of calls to the corresponding functions crash. =end original CORE::GLOBAL:: パッケージで C, C, C サブルーチンスタブを 宣言しても、対応する関数の呼び出しのコンパイルでクラッシュしなくなりました。 =item * =begin original Aliasing CORE::GLOBAL:: functions to constants stopped working in Perl 5.10 but has now been fixed. =end original Perl 5.10 から、CORE::GLOBAL:: 関数から定数への別名は動作していませんでしたが 修正されました。 =item * =begin original When C<`...`> or C calls a C override, double-quotish interpolation now happens, as is the case when there is no override. Previously, the presence of an override would make these quote-like operators act like C, suppressing interpolation. [perl #115330] =end original C<`...`> または C がオーバーライドされた C を呼び出すとき、 オーバーライドされていないときと同様に、ダブルクォート風の変数展開が 起こるようになりました。 以前は、オーバーライドが存在すると、クォート風演算子は変数展開を抑制した C のように動作していました。 [perl #115330] =item * =begin original C<<<<`...`> here-docs (with backticks as the delimiters) now call C overrides. [perl #119827] =end original C<<<<`...`> ヒヤドキュメント (デリミタとして逆クォート) は オーバーライドされた C を呼び出すようになりました。 [perl #119827] =item * =begin original C<&CORE::exit()> and C<&CORE::die()> now respect L hints. =end original C<&CORE::exit()> と C<&CORE::die()> は L ヒントを 認識するようになりました。 =item * =begin original Undefining a glob that triggers a DESTROY method that undefines the same glob is now safe. It used to produce "Attempt to free unreferenced glob pointer" warnings and leak memory. =end original 同じグロブを未定義化する DESTROY メソッドを引き起こすグロブを未定義化しても 安全になりました。 以前は "Attempt to free unreferenced glob pointer" 警告が発生してメモリが リークしていました。 =item * =begin original If subroutine redefinition (C or C for XS code) triggers a DESTROY method on the sub that is being redefined, and that method assigns a subroutine to the same slot (C<*foo = sub {}>), C<$_[0]> is no longer left pointing to a freed scalar. Now DESTROY is delayed until the new subroutine has been installed. =end original サブルーチンの再定義 (C や XS コードでの C) が 再定義されたサブルーチンの DESTROY メソッドを引き起こし、そのメソッドが同じ スロットにサブルーチンを代入する場合 (C<*foo = sub {}>)、C<$_[0]> は解放された スカラを指したままにならなくなりました。 DESTROY は新しいサブルーチンが設定されるまで遅延されるようになりました。 =item * =begin original On Windows, perl no longer calls CloseHandle() on a socket handle. This makes debugging easier on Windows by removing certain irrelevant bad handle exceptions. It also fixes a race condition that made socket functions randomly fail in a Perl process with multiple OS threads, and possible test failures in F. [perl #120091/118059] =end original Windows では、ソケットハンドルに対して CloseHandle() を呼び出さなくなりました。 ある種の無関係な間違ったハンドルの例外を取り除くことで、Windows での デバッグがより容易になりました。 これはまた、複数の OS スレッドを使う Perl プロセスでソケット関数が ランダムに失敗する競合条件と、F でテストが 失敗することがある問題も修正します。 [perl #120091/118059] =item * =begin original Formats involving UTF-8 encoded strings, or strange vars like ties, overloads, or stringified refs (and in recent perls, pure NOK vars) would generally do the wrong thing in formats when the var is treated as a string and repeatedly chopped, as in C<< ^<<<~~ >> and similar. This has now been resolved. [perl #33832/45325/113868/119847/119849/119851] =end original UTF-8 エンコードされた文字列に関するフォーマット、tie、オーバーロード、 文字列化されたリファレンス (および最近の perl ではピュア NOK 変数) のような 変わった変数は、フォーマットの中で C<< ^<<<~~ >> や同様のもので文字列として 扱われて繰り返し chop されると、一般的に間違ったことをしていました。 これは解決されました。 [perl #33832/45325/113868/119847/119849/119851] =item * =begin original C<< semctl(..., SETVAL, ...) >> would set the semaphore to the top 32-bits of the supplied integer instead of the bottom 32-bits on 64-bit big-endian systems. [perl #120635] =end original 64 ビットビッグエンディアンシステムで、C<< semctl(..., SETVAL, ...) >> は 指定された整数の下位 32 ビットではなく上位 32 ビットをセマフォに 設定していました。 [perl #120635] =item * =begin original C<< readdir() >> now only sets C<$!> on error. C<$!> is no longer set to C when then terminating C is read from the directory unless the system call sets C<$!>. [perl #118651] =end original C<< readdir() >> はエラーのときにのみ C<$!> を設定するようになりました。 ディレクトリから終端の C を読み込んだとき、システムコールが C<$!> を設定しない限りは、C<$!> に C を設定しなくなりました。 [perl #118651] =item * =begin original C<&CORE::glob> no longer causes an intermittent crash due to perl's stack getting corrupted. [perl #119993] =end original C<&CORE::glob> は perl のスタックが壊れることによる断続的なクラッシュを 引き起こさなくなりました。 [perl #119993] =item * =begin original C with layers that load modules (e.g., "<:encoding(utf8)") no longer runs the risk of crashing due to stack corruption. =end original ("<:encoding(utf8)" のような) モジュールを読み込む層を使った C で、 スタック破壊によるクラッシュのリスクがなくなりました。 =item * =begin original Perl 5.18 broke autoloading via C<< ->SUPER::foo >> method calls by looking up AUTOLOAD from the current package rather than the current package's superclass. This has been fixed. [perl #120694] =end original Perl 5.18 では、C<< ->SUPER::foo >> メソッド呼び出しによるオーバーロードは、 AUTOLOAD を現在のパッケージのスーパークラスではなく現在のパッケージから 検索していたので、動作していませんでした。 これは修正されました。 [perl #120694] =item * =begin original A longstanding bug causing C, where the constant holds a true value, to read unallocated memory has been resolved. This would usually happen after a syntax error. In past versions of Perl it has crashed intermittently. [perl #72406] =end original C で定数が真の値を保持しているときに割り当てられていない メモリを読むという、長い間あったバグが解決しました。 これは普通は文法エラーの後に起きます。 以前のバージョンの Perl では時々クラッシュしていました。 [perl #72406] =item * =begin original Fix HP-UX C<$!> failure. HP-UX strerror() returns an empty string for an unknown error code. This caused an assertion to fail under DEBUGGING builds. Now instead, the returned string for C<"$!"> contains text indicating the code is for an unknown error. =end original HP-UX での C<$!> の失敗が修正されました。 HP-UX の strerror() は不明なエラーコードに対して空文字列を返します。 これにより、DEBUGGING ビルドではアサートに失敗していました。 C<"$!"> のために返される文字列は、不明なエラーに対するコードを示すテキストを 含むようになりました。 =item * =begin original Individually-tied elements of @INC (as in C) are now handled correctly. Formerly, whether a sub returned by such a tied element would be treated as a sub depended on whether a FETCH had occurred previously. =end original (C のように) 個別に tie された @INC の要素が正しく 扱われるようになりました。 以前は、そのような tie された要素によって返されるサブルーチンが サブルーチンとして扱われるかどうかは、 FETCH が以前に発生していたかどうかに 依存していました。 =item * =begin original C on a byte-sized handle after the same C operator had been used on a utf8 handle used to treat the bytes as utf8, resulting in erratic behavior (e.g., malformed UTF-8 warnings). =end original C 演算子が utf8 ハンドルに対して使われた後、同じ C が バイト単位のハンドルに対して使われると、バイトを utf8 として扱い、 (不正な UTF-8 警告のような) 誤った振る舞いになっていました。 =item * =begin original An initial C<{> at the beginning of a format argument line was always interpreted as the beginning of a block prior to v5.18. In Perl v5.18, it started being treated as an ambiguous token. The parser would guess whether it was supposed to be an anonymous hash constructor or a block based on the contents. Now the previous behavious has been restored. [perl #119973] =end original v5.18 以前は、format の引数行の最初の C<{> は常にブロックの先頭として 解釈されていました。 Perl v5.18 では、これはあいまいなトークンとして扱われ始めました。 パーサはこれが無名ハッシュのコンストラクタかブロックかを内容によって 推測していました。 以前の振る舞いは復旧されました。 [perl #119973] =item * =begin original In Perl v5.18 C and C started crashing. This has been fixed. [perl #119949] =end original Perl v5.18 では C と C は クラッシュしていました。 これは修正されました。 [perl #119949] =item * =begin original Backticks (C< `` > or C< qx// >) combined with multiple threads on Win32 could result in output sent to stdout on one thread being captured by backticks of an external command in another thread. =end original Win32 で逆クォート (C< `` > や C< qx// >) と複数スレッドの組み合わせで、 あるスレッドでの stdout への出力が他のスレッドの外部コマンドの逆クォートで 捕捉されていました。 =begin original This could occur for pseudo-forked processes too, as Win32's pseudo-fork is implemented in terms of threads. [perl #77672] =end original これは疑似フォークされたプロセスでも起こります; Win32 の疑似フォークは スレッドで実装されているからです。 [perl #77672] =item * =begin original C<< open $fh, ">+", undef >> no longer leaks memory when TMPDIR is set but points to a directory a temporary file cannot be created in. [perl #120951] =end original TMPDIR が設定されているけれども一時ファイルを作成できないディレクトリを 指しているときに、C<< open $fh, ">+", undef >> はもはや メモリリークしなくなりました。 [perl #120951] =item * =begin original C< for ( $h{k} || '' ) > no longer auto-vivifies C<$h{k}>. [perl #120374] =end original C< for ( $h{k} || '' ) > は C<$h{k}> を自動有効化しなくなりました。 [perl #120374] =item * =begin original On Windows machines, Perl now emulates the POSIX use of the environment for locale initialization. Previously, the environment was ignored. See L. =end original Windows マシンで、ロケールの初期化に POSIX の環境変数の使用を エミュレートするようになりました。 以前は、環境変数は無視されていました。 L を参照してください。 =item * =begin original Fixed a crash when destroying a self-referencing GLOB. [perl #121242] =end original 自己参照しているグロブを破壊したときのクラッシュが修正されました。 [perl #121242] =back =head1 Known Problems (既知の問題) =over 4 =item * =begin original L is known to fail tests on AIX 5.3. There is L
in the request tracker, #120835, which may be applied to future releases. =end original L は AIX 5.3 でテストが失敗することが知られています。 request tracker #120835 には L<パッチ|https://rt.perl.org/Ticket/Display.html?id=120835> があり、 将来のリリースで適用されるかもしれません。 =item * =begin original The following modules are known to have test failures with this version of Perl. Patches have been submitted, so there will hopefully be new releases soon: =end original 以下のモジュールはこのバージョンの Perl でテストが失敗することが 知られています。 パッチは提出されているので、うまくいけばすぐに新しいリリースが出るでしょう: =over =item * =begin original L version 0.15 =end original L バージョン 0.15 =item * =begin original L version 1.05 =end original L バージョン 1.05 =item * =begin original L version 0.08. =end original L バージョン 0.08 =back =back =head1 Obituary (お悔やみ) =begin original Diana Rosa, 27, of Rio de Janeiro, went to her long rest on May 10, 2014, along with the plush camel she kept hanging on her computer screen all the time. She was a passionate Perl hacker who loved the language and its community, and who never missed a Rio.pm event. She was a true artist, an enthusiast about writing code, singing arias and graffiting walls. We'll never forget you. =end original リオデジャネイロの 27 歳、Diana Rosa は、いつもコンピュータスクリーンに 表示されていたプラッシュのらくだと共に、2014 年 5 月 10 日、長い眠りに つきました。 彼女は言語とそのコミュニティを愛した情熱的な Perl ハッカーで、Rio.pm の イベントに常に参加していました。 彼女は真のアーティストで、コードを書くことについては熱狂的で、アリアを歌い、 壁に落書きしていました。 私たちは決してあなたを忘れません。 =begin original Greg McCarroll died on August 28, 2013. =end original Greg McCarroll は 2013 年 8 月 28 日に死去しました。 =begin original Greg was well known for many good reasons. He was one of the organisers of the first YAPC::Europe, which concluded with an unscheduled auction where he frantically tried to raise extra money to avoid the conference making a loss. It was Greg who mistakenly arrived for a london.pm meeting a week late; some years later he was the one who sold the choice of official meeting date at a YAPC::Europe auction, and eventually as glorious leader of london.pm he got to inherit the irreverent confusion that he had created. =end original Greg は多くの良い理由でよく知られていました。 彼は、最初の YAPC::Europe の主催者の一人でした; これはカンファレンスが 赤字になるのを避けるために彼が必死に値を釣り上げた予定外のオークションで 終わったものです。 london.pm ミーティングに間違って 1 週間遅れて到着したのも Greg でした; 数年後彼は YAPC::Europe オークションで公式ミーティングの日付の選択を 売った一人でした; そして最終的に彼は london.pm の名誉あるリーダーとして、 彼が作り出したばかげた混乱を引き継ぐことになりました。 =begin original Always helpful, friendly and cheerfully optimistic, you will be missed, but never forgotten. =end original いつも親切で、親しげで、陽気で楽観的なあなたがいなくなって寂しいですが、決して 忘れません。 =head1 Acknowledgements =begin original Perl 5.20.0 represents approximately 12 months of development since Perl 5.18.0 and contains approximately 470,000 lines of changes across 2,900 files from 124 authors. =end original Perl 5.20.0 は、Perl 5.18.0 以降、124 人の作者によって、2,900 のファイルに 約 470,000 行の変更を加えて、約 12 ヶ月開発されてきました。 =begin original Excluding auto-generated files, documentation and release tools, there were approximately 280,000 lines of changes to 1,800 .pm, .t, .c and .h files. =end original 自動生成ファイル、文書、リリースツールを除くと、1,800 の .pm, .t, .c, .h ファイルに約 280,000 行の変更を加えました。 =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.20.0: =end original Perl は、活気のあるユーザーと開発者のコミュニティのおかげで 20 年を超えて 繁栄しています。 以下の人々が、Perl 5.20.0 になるための改良に貢献したことが分かっています: Aaron Crane, Abhijit Menon-Sen, Abigail, Abir Viqar, Alan Haggai Alavi, Alan Hourihane, Alexander Voronov, Alexandr Ciornii, Andy Dougherty, Anno Siegel, Aristotle Pagaltzis, Arthur Axel 'fREW' Schmidt, Brad Gilbert, Brendan Byrd, Brian Childs, Brian Fraser, Brian Gottreu, Chris 'BinGOs' Williams, Christian Millour, Colin Kuskie, Craig A. Berry, Dabrien 'Dabe' Murphy, Dagfinn Ilmari MannsE<229>ker, Daniel Dragan, Darin McBride, David Golden, David Leadbeater, David Mitchell, David Nicol, David Steinbrunner, Dennis Kaarsemaker, Dominic Hargreaves, Ed Avis, Eric Brine, Evan Zacks, Father Chrysostomos, Florian Ragwitz, FranE<231>ois Perrad, Gavin Shelley, Gideon Israel Dsouza, Gisle Aas, Graham Knop, H.Merijn Brand, Hauke D, Heiko Eissfeldt, Hiroo Hayashi, Hojung Youn, James E Keenan, Jarkko Hietaniemi, Jerry D. Hedden, Jess Robinson, Jesse Luehrs, Johan Vromans, John Gardiner Myers, John Goodyear, John P. Linderman, John Peacock, kafka, Kang-min Liu, Karen Etheridge, Karl Williamson, Keedi Kim, Kent Fredric, kevin dawson, Kevin Falcone, Kevin Ryde, Leon Timmermans, Lukas Mai, Marc Simpson, Marcel GrE<252>nauer, Marco Peereboom, Marcus Holland-Moritz, Mark Jason Dominus, Martin McGrath, Matthew Horsfall, Max Maischein, Mike Doherty, Moritz Lenz, Nathan Glenn, Nathan Trapuzzano, Neil Bowers, Neil Williams, Nicholas Clark, Niels Thykier, Niko Tyni, Olivier MenguE<233>, Owain G. Ainsworth, Paul Green, Paul Johnson, Peter John Acklam, Peter Martini, Peter Rabbitson, Petr PE<237>saE<345>, Philip Boulain, Philip Guenther, Piotr Roszatycki, Rafael Garcia-Suarez, Reini Urban, Reuben Thomas, Ricardo Signes, Ruslan Zakirov, Sergey Alekseev, Shirakata Kentaro, Shlomi Fish, Slaven Rezic, Smylers, Steffen ME<252>ller, Steve Hay, Sullivan Beck, Thomas Sibley, Tobias Leich, Toby Inkster, Tokuhiro Matsuno, Tom Christiansen, Tom Hukins, Tony Cook, Victor Efimov, Viktor Turskyi, Vladimir Timofeev, YAMASHINA Hio, Yves Orton, Zefram, ZsbE<225>n Ambrus, E<198>var ArnfjE<246>rE<240> Bjarmason. =begin original The list above is almost certainly incomplete as it is automatically generated from version control history. In particular, it does not include the names of the (very much appreciated) contributors who reported issues to the Perl bug tracker. =end original これはバージョンコントロール履歴から自動的に生成しているので、ほぼ確実に 不完全です。 特に、Perl バグトラッカーに問題を報告をしてくれた (とてもありがたい)貢献者の 名前を含んでいません。 =begin original Many of the changes included in this version originated in the CPAN modules included in Perl's core. We're grateful to the entire CPAN community for helping Perl to flourish. =end original このバージョンに含まれている変更の多くは、Perl コアに含まれている CPAN モジュール由来のものです。 私たちは Perl の発展を助けている CPAN コミュニティ全体に感謝します。 =begin original For a more complete list of all of Perl's historical contributors, please see the F file in the Perl source distribution. =end original 全ての Perl の歴史的な貢献者のより完全な一覧については、どうか Perl ソース 配布に含まれている F を参照してください。 =head1 Reporting Bugs (バグ報告) =begin original If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at http://rt.perl.org/perlbug/ . There may also be information at http://www.perl.org/ , the Perl Home Page. =end original もしバグと思われるものを見つけたら、comp.lang.perl.misc ニュースグループに 最近投稿された記事や http://rt.perl.org/perlbug/ にある perl バグ データベースを確認してください。 Perl ホームページ、http://www.perl.org/ にも情報があります。 =begin original If you believe you have an unreported bug, please run the L program included with your release. Be sure to trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of C, will be sent off to perlbug@perl.org to be analysed by the Perl porting team. =end original もしまだ報告されていないバグだと確信したら、そのリリースに含まれている L プログラムを実行してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。 バグレポートは C の出力と一緒に perlbug@perl.org に送られ Perl porting チームによって解析されます。 =begin original If the bug you are reporting has security implications, which make it inappropriate to send to a publicly archived mailing list, then please send it to perl5-security-report@perl.org. This points to a closed subscription unarchived mailing list, which includes all the core committers, who will be able to help assess the impact of issues, figure out a resolution, and help co-ordinate the release of patches to mitigate or fix the problem across all platforms on which Perl is supported. Please only use this address for security issues in the Perl core, not for modules independently distributed on CPAN. =end original もし報告しようとしているバグがセキュリティに関するもので、公開されている メーリングリストに送るのが不適切なものなら、 perl5-security-report@perl.org に送ってください。 このアドレスは、問題の影響を評価し、解決法を見つけ、Perl が対応している 全てのプラットフォームで問題を軽減または解決するパッチをリリースするのを 助けることが出来る、全てのコアコミッタが参加している非公開の メーリングリストになっています。 このアドレスは、独自に CPAN で配布されているモジュールではなく、 Perl コアのセキュリティ問題だけに使ってください。 =head1 SEE ALSO =begin original The F file for an explanation of how to view exhaustive details on what changed. =end original 変更点の完全な詳細を見る方法については F ファイル。 =begin original The F file for how to build Perl. =end original Perl のビルド方法については F ファイル。 =begin original The F file for general stuff. =end original 一般的なことについては F ファイル。 =begin original The F and F files for copyright information. =end original 著作権情報については F 及び F ファイル。 =cut =begin meta Translate: SHIRAKATA Kentaro Status: completed =end meta