=encoding euc-jp =head1 NAME =begin original perldelta - what is new for perl v5.28.0 =end original perl5280delta - perl v5.28.0 での変更点 =head1 DESCRIPTION =begin original This document describes differences between the 5.26.0 release and the 5.28.0 release. =end original この文書は 5.26.0 リリースと 5.28.0 リリースの変更点を記述しています。 =begin original If you are upgrading from an earlier release such as 5.24.0, first read L, which describes differences between 5.24.0 and 5.26.0. =end original 5.24.0 のような以前のリリースから更新する場合は、まず 5.24.0 と 5.26.0 の違いについて記述している L を読んでください。 =head1 Core Enhancements (コアの拡張) =head2 Unicode 10.0 is supported (Unicode 10.0 対応) =begin original A list of changes is at L. =end original 変更の一覧は L にあります。 =head2 L|perlfunc/delete EXPR> on key/value hash slices (キー/値ハッシュスライスに対する L|perlfunc/delete EXPR>) =begin original L|perlfunc/delete EXPR> can now be used on Lvalue hash slices|perldata/KeyEValue Hash Slices>, returning the keys along with the deleted values. L<[perl #131328]|https://rt.perl.org/Ticket/Display.html?id=131328> =end original L|perlfunc/delete EXPR> は L<キーE値のスライス|perldata/KeyEValue Hash Slices> に 使えるようになりました; 削除された値に関するキーを返します。 L<[perl #131328]|https://rt.perl.org/Ticket/Display.html?id=131328> =head2 Experimentally, there are now alphabetic synonyms for some regular expression assertions (実験的に、正規表現アサートの英字の別名が利用可能になりました) =begin original If you find it difficult to remember how to write certain of the pattern assertions, there are now alphabetic synonyms. =end original 特定のパターンアサートの書き方を覚えるのが難しい場合、 英文字の同義語が使えるようになりました. CURRENT NEW SYNONYMS ------ ------------ (?=...) (*pla:...) or (*positive_lookahead:...) (?!...) (*nla:...) or (*negative_lookahead:...) (?<=...) (*plb:...) or (*positive_lookbehind:...) (?...) (*atomic:...) =begin original These are considered experimental, so using any of these will raise (unless turned off) a warning in the C category. =end original これは実験的と考えられているので、これらを使うと(オフにしない限り) C カテゴリの警告が発生します。 =head2 Mixed Unicode scripts are now detectable (混合 Unicode 用字を検出可能になりました) =begin original A mixture of scripts, such as Cyrillic and Latin, in a string is often the sign of a spoofing attack. A new regular expression construct now allows for easy detection of these. For example, you can say =end original ある文字列の中で Cyrillic と Latin のような用字が混ざっているようなものは、 しばしばスプーフィング攻撃のサインとなります。 新しい正規表現構文はこれらを簡単に検出できるようになります。 例えば、次のようにすると: qr/(*script_run: \d+ \b )/x =begin original And the digits matched will all be from the same set of 10. You won't get a look-alike digit from a different script that has a different value than what it appears to be. =end original マッチングする数字は 10 ある中の同じ集合の中のものになります。 見た目と異なる値を持つ異なった用字からの数字に見えるものには マッチングしません。 =begin original Or: =end original または: qr/(*sr: \b \w+ \b )/x =begin original makes sure that all the characters come from the same script. =end original このようにすると全ての文字が同じ用字であることを確実にできます。 =begin original You can also combine script runs with C<(?E...)> (or C<*atomic:...)>). =end original また、C<(?E...)> (あるいは C<*atomic:...)>) で用字連続を結合することも できます。 =begin original Instead of writing: =end original このように書く代わりに: (*sr:(?<...)) =begin original you can now run: =end original 次のようにできます: (*asr:...) # or (*atomic_script_run:...) =begin original This is considered experimental, so using it will raise (unless turned off) a warning in the C category. =end original これは実験的と考えられるので、これらを使うと (オフにしない限り) C カテゴリの警告が発生します。 =begin original See L. =end original L を参照してください。 =head2 In-place editing with C is now safer (C でのその場編集はより安全になりました) =begin original Previously in-place editing (C) would delete or rename the input file as soon as you started working on a new file. =end original 以前は、その場編集 (C) は、新しいファイルでの作業を開始すると すぐに入力ファイルは削除されたりリネームされたりしていました。 =begin original Without backups this would result in loss of data if there was an error, such as a full disk, when writing to the output file. =end original バックアップしていない場合、出力ファイルを書き込むときに ディスクフルのようなエラーが起きると、データを失うことになっていました。 =begin original This has changed so that the input file isn't replaced until the output file has been completely written and successfully closed. =end original これは、出力ファイルが完全に書き込まれ、閉じるのが成功するまで、 入力ファイルは置き換えられないように変更されました。 =begin original This works by creating a work file in the same directory, which is renamed over the input file once the output file is complete. =end original これは、同じディレクトリに作業用ファイルを作成し、出力ファイルが完成すると 入力ファイルにリネームされるという形で行われます。 =begin original Incompatibilities: =end original 非互換性: =over =item * =begin original Since this renaming needs to only happen once, if you create a thread or child process, that renaming will only happen in the original thread or process. =end original このリネームは一度しか起きる必要がないため、スレッドや子プロセスを 作成した場合、このリネームは元のスレッドや プロセスでしか起こりません。 =item * =begin original If you change directories while processing a file, and your operating system doesn't provide the C, C and C functions, the final rename step may fail. =end original ファイルの処理中にディレクトリを変更し、オペレーティングシステムが C, C, C 関数を提供していない場合、 最後のリネームは失敗するかもしれません。 =back L<[perl #127663]|https://rt.perl.org/Public/Bug/Display.html?id=127663> =head2 Initialisation of aggregate state variables (集合 state 変数の初期化) =begin original A persistent lexical array or hash variable can now be initialized, by an expression such as C. Initialization of a list of persistent lexical variables is still not possible. =end original 永続的なレキシカル配列やハッシュは、C のような式で 初期化できるようになりました。 永続的なレキシカル変数のリストの初期化はできないままです。 =head2 Full-size inode numbers (フルサイズの inode 番号) =begin original On platforms where inode numbers are of a type larger than perl's native integer numerical types, L will preserve the full content of large inode numbers by returning them in the form of strings of decimal digits. Exact comparison of inode numbers can thus be achieved by comparing with C rather than C<==>. Comparison with C<==>, and other numerical operations (which are usually meaningless on inode numbers), work as well as they did before, which is to say they fall back to floating point, and ultimately operate on a fairly useless rounded inode number if the real inode number is too big for the floating point format. =end original inode 番号が perl のネイティブの整数型より大きな型になっている プラットフォームの場合、 L は、inode 番号を 10 進数の文字列で返すことで 大きい inode 番号を完全に保存します。 従って、inode 番号の正確な比較は C<==> ではなく C で比較することで 行われます。 C<==> での比較や(通常 inode 番号に対しては意味のない) その他の数値演算では、以前と同様に動作します; これは浮動小数点数にフォールバックし、もし実際の inode 番号が浮動小数点数 型式にとって大きすぎると、究極的にはあまり意味のない、丸められた inode 番号に対して 操作することになります。 =head2 The C C<%j> format size modifier is now available with pre-C99 compilers (C の C<%j> フォーマットサイズ修飾子は C99 以前で利用可能になりました) =begin original The actual size used depends on the platform, so remains unportable. =end original 実際に使われるサイズはプラットフォームに依存するため、移植性はないままです。 =head2 Close-on-exec flag set atomically (Close-on-exec フラグはアトミックに設定されます) =begin original When opening a file descriptor, perl now generally opens it with its close-on-exec flag already set, on platforms that support doing so. This improves thread safety, because it means that an C initiated by one thread can no longer cause a file descriptor in the process of being opened by another thread to be accidentally passed to the executed program. =end original ファイル記述子を開くとき、プラットフォームが対応しているなら、 perl は一般的に close-on-exec フラグを設定した状態で開くようになりました。 これはスレッド安全性を改善します; なぜなら、あるスレッドで起動した C は、 もはや他のスレッドで開かれたファイル記述子を間違って実行されたプログラムに 渡されることはないからです。 =begin original Additionally, perl now sets the close-on-exec flag more reliably, whether it does so atomically or not. Most file descriptors were getting the flag set, but some were being missed. =end original さらに、perl は、アトミックに行うかどうかに関わらず、より確実に close-on-exec フラグを設定するようになりました。 ほとんどのファイル記述子はこのフラグを設定していましたが、 漏れている場合がありました。 =head2 String- and number-specific bitwise ops are no longer experimental (文字列形式と数値形式のビット単位演算子は実験的ではなくなりました) =begin original The new string-specific (C<&. |. ^. ~.>) and number-specific (C<& | ^ ~>) bitwise operators introduced in Perl 5.22 that are available within the scope of C are no longer experimental. Because the number-specific ops are spelled the same way as the existing operators that choose their behaviour based on their operands, these operators must still be enabled via the "bitwise" feature, in either of these two ways: =end original Perl 5.22 から C のスコープの中で利用可能だった 新しい文字列固有 (C<&. |. ^. ~.>) および数値固有 (C<& | ^ ~>) の ビット単位演算子はもはや実験的ではなくなりました。 数値固有の op は、オペランドによって振る舞いを変える既存の演算子と 同じように綴ります。 これらの演算子は次の二つの方法のどちらの「ビット単位」機能経由で 有効にしなければならないままです: use feature "bitwise"; use v5.28; # "bitwise" now included =begin original They are also now enabled by the B<-E> command-line switch. =end original これらはまた B<-E> コマンドラインオプションでも有効にできます。 =begin original The "bitwise" feature no longer emits a warning. Existing code that disables the "experimental::bitwise" warning category that the feature previously used will continue to work. =end original "bitwise" 機能はもはや警告を出さなくなりました。 以前使っていた "experimental::bitwise" 警告カテゴリを無効にしている 既存のコードはそのまま動作し続けます。 =begin original One caveat that module authors ought to be aware of is that the numeric operators now pass a fifth TRUE argument to overload methods. Any methods that check the number of operands may croak if they do not expect so many. XS authors in particular should be aware that this: =end original モジュール作者が気にする必要がある一つの問題は、数値演算子は オーバーロードされたメソッドの 5 番目の引数として TRUE を 渡すようになったということです。 オペランドの数をチェックするメソッドは、想定していない数が来るので croak するかもしれません。 次のようにしている XS 作者は: SV * bitop_handler (lobj, robj, swap) =begin original may need to be changed to this: =end original このように変更する必要があるでしょう: SV * bitop_handler (lobj, robj, swap, ...) =head2 Locales are now thread-safe on systems that support them (ロケールは対応しているシステムではスレッドセーフになりました) =begin original These systems include Windows starting with Visual Studio 2005, and in POSIX 2008 systems. =end original これらのシステムには Visual Studio 2005 以降の Windows と POSIX 2008 システムが含まれます。 =begin original The implication is that you are now free to use locales and change them in a threaded environment. Your changes affect only your thread. See L =end original これにより、スレッド環境でも自由にロケールを使用および 変更できるようになりました。 変更は自身のスレッドにのみ影響を与えます。 L を参照してください。 =head2 New read-only predefined variable C<${^SAFE_LOCALES}> (新しい読み込み専用定期済み変数 C<${^SAFE_LOCALES}>) =begin original This variable is 1 if the Perl interpreter is operating in an environment where it is safe to use and change locales (see L.) This variable is true when the perl is unthreaded, or compiled in a platform that supports thread-safe locale operation (see previous item). =end original この変数は、Perl インタプリタが、安全にロケールを使用および変更できる 環境で実行されている場合に 1 になります (L を参照してください)。 この変数は、perl がスレッド対応でないか、スレッドセーフなロケール操作 (前述の項目を参照)に対応していないプラットフォームで コンパイルされている場合に真になります。 =head1 Security (セキュリティ) =head2 [CVE-2017-12837] Heap buffer overflow in regular expression compiler ([CVE-2017-12837] 正規表現コンパイラのヒープバッファオーバーフロー) =begin original Compiling certain regular expression patterns with the case-insensitive modifier could cause a heap buffer overflow and crash perl. This has now been fixed. L<[perl #131582]|https://rt.perl.org/Public/Bug/Display.html?id=131582> =end original 大文字小文字無視修飾子付きのある種の正規表現パターンをコンパイルすると ヒープバッファオーバーフローを引き起こし、perl が クラッシュすることがありました。 これは修正されました。 L<[perl #131582]|https://rt.perl.org/Public/Bug/Display.html?id=131582> =head2 [CVE-2017-12883] Buffer over-read in regular expression parser ([CVE-2017-12883] 正規表現パーサのバッファの読み込み過ぎ) =begin original For certain types of syntax error in a regular expression pattern, the error message could either contain the contents of a random, possibly large, chunk of memory, or could crash perl. This has now been fixed. L<[perl #131598]|https://rt.perl.org/Public/Bug/Display.html?id=131598> =end original 正規表現パターン中のある種の文法エラーにおいて、 エラーメッセージにランダムでおそらく大きなメモリの塊を表示したり、perl を クラッシュさせたりしていました。 これは修正されました。 L<[perl #131598]|https://rt.perl.org/Public/Bug/Display.html?id=131598> =head2 [CVE-2017-12814] C<$ENV{$key}> stack buffer overflow on Windows ([CVE-2017-12814] Windows での C<$ENV{$key}> スタックバッファオーバーフロー) =begin original A possible stack buffer overflow in the C<%ENV> code on Windows has been fixed by removing the buffer completely since it was superfluous anyway. L<[perl #131665]|https://rt.perl.org/Public/Bug/Display.html?id=131665> =end original Windows での C<%ENV> コードで起こりうるスタックバッファオーバーフローが、 バッファを完全に削除することで修正されました; これはどちらにしろ過剰でした。 L<[perl #131665]|https://rt.perl.org/Public/Bug/Display.html?id=131665> =head2 Default Hash Function Change (デフォルトのハッシュ関数の変更) =begin original Perl 5.28.0 retires various older hash functions which are not viewed as sufficiently secure for use in Perl. We now support four general purpose hash functions, Siphash (2-4 and 1-3 variants), and Zaphod32, and StadtX hash. In addition we support SBOX32 (a form of tabular hashing) for hashing short strings, in conjunction with any of the other hash functions provided. =end original Perl 5.28.0 では、Perl での使用において十分に安全であると考えられていない 様々な古いハッシュ関数が引退します。 現在四つの汎用ハッシュ関数、 Siphash (2-4 版と 1-3 版), Zaphod32, StadtX ハッシュを使います。 これに加えて、短い文字列のハッシュに SBOX32 (集計ハッシュ型式) を、 他のハッシュ関数と組み合わせて使います。 =begin original By default Perl is configured to support SBOX hashing of strings up to 24 characters, in conjunction with StadtX hashing on 64 bit builds, and Zaphod32 hashing for 32 bit builds. =end original デフォルトでは Perl は 24 文字までの文字列では SBOX ハッシュを用い、 64 ビットビルドでは StadtX ハッシュを、32 ビットビルドでは Zaphod32 ハッシュと組み合わせます。 =begin original You may control these settings with the following options to Configure: =end original これらの設定は以下の Configure オプションで制御できます: -DPERL_HASH_FUNC_SIPHASH -DPERL_HASH_FUNC_SIPHASH13 -DPERL_HASH_FUNC_STADTX -DPERL_HASH_FUNC_ZAPHOD32 =begin original To disable SBOX hashing you can use =end original SBOX ハッシュを無効にするには: -DPERL_HASH_USE_SBOX32_ALSO=0 =begin original And to set the maximum length to use SBOX32 hashing on with: =end original SBOX32 ハッシュを使う最大長を設定するには: -DSBOX32_MAX_LEN=16 =begin original The maximum length allowed is 256. There probably isn't much point in setting it higher than the default. =end original 設定できる最大長は 256 までです。 これをデフォルトより大きい値にしても余り意味はないでしょう。 =head1 Incompatible Changes (互換性のない変更) =head2 Subroutine attribute and signature order (サブルーチン属性とシグネチャの順序) =begin original The experimental subroutine signatures feature has been changed so that subroutine attributes must now come before the signature rather than after. This is because attributes like C<:lvalue> can affect the compilation of code within the signature, for example: =end original 実験的なサブルーチンシグネチャ機能について、サブルーチン属性はシグネチャの 後ではなく前でなければならないように変更されました。 これは、C<:lvalue> のような属性がシグネチャの中のコードのコンパイルに 影響を与えることがあるからです; 例えば: sub f :lvalue ($a = do { $x = "abc"; return substr($x,0,1)}) { ...} =begin original Note that this the second time they have been flipped: =end original これを入れ替えたのは 2 回目であることに注意してください: sub f :lvalue ($a, $b) { ... }; # 5.20; 5.28 onwards sub f ($a, $b) :lvalue { ... }; # 5.22 - 5.26 =head2 Comma-less variable lists in formats are no longer allowed (フォーマットでのカンマなしの変数リストはもはや許されなくなりました) =begin original Omitting the commas between variables passed to formats is no longer allowed. This has been deprecated since Perl 5.000. =end original フォーマットに渡す変数の間のカンマを省略するのはもはや許されなくなりました。 これは Perl 5.000 から廃止予定になっていました。 =head2 The C<:locked> and C<:unique> attributes have been removed (C<:locked> と C<:unique> の属性は削除されました) =begin original These have been no-ops and deprecated since Perl 5.12 and 5.10, respectively. =end original これらはなにもしておらず、それぞれ Perl 5.12 と 5.10 から 廃止予定になっていました。 =head2 C<\N{}> with nothing between the braces is now illegal (C<\N{}> で中かっこの中に何も書かないのは不正になりました) =begin original This has been deprecated since Perl 5.24. =end original これは Perl 5.24 から廃止予定になっていました。 =head2 Opening the same symbol as both a file and directory handle is no longer allowed (ファイルハンドルとディレクトリハンドルで同じ名前を使うのはもはや許されなくなりました) =begin original Using C and C to associate both a filehandle and a dirhandle to the same symbol (glob or scalar) has been deprecated since Perl 5.10. =end original C と C を、ファイルハンドルとディレクトリハンドルの 両方に同じシンボル(グロブまたはスカラ)で関連付けるのに使うのは、 Perl 5.10 から廃止予定になっていました。 =head2 Use of bare C<< << >> to mean C<< <<"" >> is no longer allowed (C<< <<"" >> の意味で C<< << >> を使うのはもはや許されなくなりました) =begin original Use of a bare terminator has been deprecated since Perl 5.000. =end original 裸の区切り文字は Perl 5.000 から廃止予定になっていました。 =head2 Setting $/ to a reference to a non-positive integer no longer allowed (非正整数へのリファレンスを $/ に設定するのはもはや許されません) =begin original This used to work like setting it to C, but has been deprecated since Perl 5.20. =end original これは C への設定のように動作していましたが、Perl 5.20 から 廃止予定になっていました。 =head2 Unicode code points with values exceeding C are now fatal (C を超える値の Unicode 符号位置は致命的エラーになりました) =begin original This was deprecated since Perl 5.24. =end original これは Perl 5.24 から廃止予定になっていました。 =head2 The C method has been removed (C メソッドは削除されました) =begin original Use C instead. =end original 代わりに C を使ってください。 =head2 Use of inherited AUTOLOAD for non-methods is no longer allowed (非メソッドに対する継承された AUTOLOAD はもはや許されなくなりました) =begin original This was deprecated in Perl 5.004. =end original これは Perl 5.004 から廃止予定になっていました。 =head2 Use of strings with code points over 0xFF is not allowed for bitwise string operators (0xFF を越える符号位置を持つ文字列に対するビット単位の文字列演算子の使用は許されなくなりました) =begin original Code points over C<0xFF> do not make sense for bitwise operators and such an operation will now croak, except for a few remaining cases. See L. =end original C<0xFF> を越える符号位置に関するビット単位演算子は意味を持たないので、 そのような操作は、いくつかの場合を除いて croak するようになりました。 L を参照してください。 =begin original This was deprecated in Perl 5.24. =end original これは Perl 5.24 から廃止予定になっていました。 =head2 Setting C<${^ENCODING}> to a defined value is now illegal (C<${^ENCODING}> に定義された値を設定するのは不正になりました) =begin original This has been deprecated since Perl 5.22 and a no-op since Perl 5.26. =end original これは Perl 5.22 から廃止予定になっており、Perl 5.26 から 何もしなくなっていました。 =head2 Backslash no longer escapes colon in PATH for the C<-S> switch (C<-S> オプションで PATH の中の逆スラッシュはもはやコロンをエスケープしなくなりました) =begin original Previously the C<-S> switch incorrectly treated backslash ("\") as an escape for colon when traversing the C environment variable. L<[perl #129183]|https://rt.perl.org/Ticket/Display.html?id=129183> =end original 以前は、C<-S> オプションは C 環境変数を辿るときに誤って 逆スラッシュ ("\") をコロンのエスケープとして扱っていました。 L<[perl #129183]|https://rt.perl.org/Ticket/Display.html?id=129183> =head2 the -DH (DEBUG_H) misfeature has been removed (-DH (DEBUG_H) (非)機能は削除されました) =begin original On a perl built with debugging support, the C flag to the C<-D> debugging option has been removed. This was supposed to dump hash values, but has been broken for many years. =end original デバッグに対応した perl において、C<-D> デバッグオプションの C フラグは削除されました。 これはハッシュ値をダンプする予定でしたが、何年も壊れたままでした。 =head2 Yada-yada is now strictly a statement (ヤダヤダは厳密に文になりました) =begin original By the time of its initial stable release in Perl 5.12, the C<...> (yada-yada) operator was explicitly intended to serve as a statement, not an expression. However, the original implementation was confused on this point, leading to inconsistent parsing. The operator was accidentally accepted in a few situations where it did not serve as a complete statement, such as =end original Perl 5.12 での初期リリース時点から、C<...> (ヤダヤダ) 演算子は、 式ではなく文として扱うことを明示的に想定していました。 しかし、元の実装はこの点において混乱していて、一貫性のないパースを 引き起こしていました。 この演算子は、次のような、完全な文として扱えないような状況でも 誤って受け入れていました: ... . "foo"; ... if $a < $b; =begin original The parsing has now been made consistent, permitting yada-yada only as a statement. Affected code can use C to put a yada-yada into an arbitrary expression context. =end original パースは一貫性を持つようになり、ヤダヤダは文としてのみ 許されるようになりました。 影響を受けるコードは、任意の式が使えるところにヤダヤダを置くために C が使えます。 =head2 Sort algorithm can no longer be specified (ソートアルゴリズムはもはや指定できなくなりました) =begin original Since Perl 5.8, the L pragma has had subpragmata C<_mergesort>, C<_quicksort>, and C<_qsort> that can be used to specify which algorithm perl should use to implement the L builtin. This was always considered a dubious feature that might not last, hence the underscore spellings, and they were documented as not being portable beyond Perl 5.8. These subpragmata have now been deleted, and any attempt to use them is an error. The L pragma otherwise remains, and the algorithm-neutral C subpragma can be used to control sorting behaviour. L<[perl #119635]|https://rt.perl.org/Ticket/Display.html?id=119635> =end original Perl 5.8 から、L プラグマには、L 組み込み関数の 実装に使うアルゴリズムを指定するための C<_mergesort>, C<_quicksort>, C<_qsort> 副プラグマがありました。 これは常に疑わしく、長続きしないかもしれない機能と考えられていたので、 下線付きの名前になっていて、Perl 5.8 から移植性がないと文書化されていました。 これらの副プラグマは削除され、これらを使おうとする試みはエラーとなります。 それ以外の L プラグマは残り、アルゴリズム中立な C 副プラグマをソートの振る舞いを制御するために使えます。 L<[perl #119635]|https://rt.perl.org/Ticket/Display.html?id=119635> =head2 Over-radix digits in floating point literals (浮動小数点数リテラルの基数点以上の数字) =begin original Octal and binary floating point literals used to permit any hexadecimal digit to appear after the radix point. The digits are now restricted to those appropriate for the radix, as digits before the radix point always were. =end original 8 進と 2 進の浮動小数点数リテラルでは、基数点の前に現れる任意の 16 進文字を 許していました。 この数字は、基数点の前の数字が常にそうであるのと同様、その基数に 適切なもののみに制限されるようになりました。 =head2 Return type of C (C の返り値型) =begin original The return types of the C API functions C and C have changed from C to C, in order to accommodate datasets of more than two billion items. =end original C API 関数 C と C の返り値の型は C から C 変更されました; 20 億個以上のデータセットに対応するためです。 =head1 Deprecations (廃止予定) =head2 Use of L|perlfunc/vec EXPR,OFFSET,BITS> on strings with code points above 0xFF is deprecated (符号位置が 0xFF を越える文字列に対する L|perlfunc/vec EXPR,OFFSET,BITS> の使用は廃止予定になりました) =begin original Such strings are represented internally in UTF-8, and C is a bit-oriented operation that will likely give unexpected results on those strings. =end original これらの文字列は内部的に UTF-8 で表現されており、C はビット単位の操作を 行うので、これらの文字列に対してはおそらく想定外の結果となります。 =head2 Some uses of unescaped C<"{"> in regexes are no longer fatal (正規表現中のエスケープされない C<"{"> の使用法の一部はもはや致命的ではなくなりました) =begin original Perl 5.26.0 fatalized some uses of an unescaped left brace, but an exception was made at the last minute, specifically crafted to be a minimal change to allow GNU Autoconf to work. That tool is heavily depended upon, and continues to use the deprecated usage. Its use of an unescaped left brace is one where we have no intention of repurposing C<"{"> to be something other than itself. =end original Perl 5.26.0 はいくつかのエスケープされていない左中かっこの使用を 致命的エラーにしましたが、最後の瞬間に例外を作りました; 特に、GNU Autoconf が動作するように最小限の操作を行いました。 このツールはこれにとても依存していて、廃止予定の使い方を使い続けています。 ここでのエスケープされない左中かっこの使い方は、私たちが C<"{"> に他の意味を持たせる意図のないものでした。 =begin original That exception is now generalized to include various other such cases where the C<"{"> will not be repurposed. =end original この例外は、C<"{"> に他の意味を持たせないその他の様々な場合に 一般化されました。 =begin original Note that these uses continue to raise a deprecation message. =end original これらの使用は廃止予定警告を出し続けることに注意してください。 =head2 Use of unescaped C<"{"> immediately after a C<"("> in regular expression patterns is deprecated (正規表現中の C<"("> の直後の C<"{"> の使用は廃止予定になりました) =begin original Using unescaped left braces is officially deprecated everywhere, but it is not enforced in contexts where their use does not interfere with expected extensions to the language. A deprecation is added in this release when the brace appears immediately after an opening parenthesis. Before this, even if the brace was part of a legal quantifier, it was not interpreted as such, but as the literal characters, unlike other quantifiers that follow a C<"("> which are considered errors. Now, their use will raise a deprecation message, unless turned off. =end original エスケープされない左中かっこは公式にはどこでも廃止予定ですが、 その使用が言語の予定されている拡張を妨害しない文脈では強制されません。 このリリースから、中かっこが開きかっこの直後にある場合も 廃止予定に追加されました。 以前は、たとえ中かっこが正当な量指定子の一部でも、そのように解釈されず、 リテラル文字として解釈されていました; これは C<"("> をエラーと考える他の量指定子と異なっていました。 これらの使用は、オフにしない限り廃止予定警告が出るようになりました。 =head2 Assignment to C<$[> will be fatal in Perl 5.30 (C<$[> への代入は Perl 5.30 から致命的エラーになります) =begin original Assigning a non-zero value to L|perlvar/$[> has been deprecated since Perl 5.12, but was never given a deadline for removal. This has now been scheduled for Perl 5.30. =end original L|perlvar/$[> に非 0 値を代入することは Perl 5.12 から廃止予定と なっていましたが、削除の期日は決まっていませんでした。 これは Perl 5.30 に予定されています。 =head2 hostname() won't accept arguments in Perl 5.32 (hostname() は Perl 5.32 から引数を受け付けなくなります) =begin original Passing arguments to C was already deprecated, but didn't have a removal date. This has now been scheduled for Perl 5.32. L<[perl #124349]|https://rt.perl.org/Ticket/Display.html?id=124349> =end original C に引数を渡すことは既に廃止予定と なっていましたが、削除の期日は決まっていませんでした。 これは Perl 5.32 に予定されています。 L<[perl #124349]|https://rt.perl.org/Ticket/Display.html?id=124349> =head2 Module removals (モジュールの削除) =begin original The following modules will be removed from the core distribution in a future release, and will at that time need to be installed from CPAN. Distributions on CPAN which require these modules will need to list them as prerequisites. =end original 以下のモジュールは将来のリリースでコア配布から削除され、その時点で CPAN からインストールされる必要があるようになります。 これらのモジュールを必要とする CPAN 配布はこれらを依存関係に入れる 必要があります。 =begin original The core versions of these modules will now issue C<"deprecated">-category warnings to alert you to this fact. To silence these deprecation warnings, install the modules in question from CPAN. =end original これらのモジュールのコア版は、この事実を知らせるために、 C<"deprecated"> カテゴリの警告を発生させます。 この廃止予定警告を止めるには、対象のモジュールを CPAN からインストールしてください。 =begin original Note that these are (with rare exceptions) fine modules that you are encouraged to continue to use. Their disinclusion from core primarily hinges on their necessity to bootstrapping a fully functional, CPAN-capable Perl installation, not usually on concerns over their design. =end original これらは(まれな例外を除いて)使い続けることを勧められる、 良いモジュールであることに注意してください。 コアからの除去は基本的に、完全な機能を持ち、CPAN が利用可能な Perl の インストールに対する必要性を基準としていて、通常はその設計は考慮していません。 =over =item B::Debug =item L and its associated Country, Currency and Language modules (L とそれに関連付けられる Country, Currency, Language モジュール) =back =head1 Performance Enhancements (性能改善) =over 4 =item * =begin original The start up overhead for creating regular expression patterns with Unicode properties (C<\p{...}>) has been greatly reduced in most cases. =end original Unicode 特性 (C<\p{...}>) を含む正規表現パターンを作成するときの 初期オーバーヘッドがほとんどの場合で大きく減少しました。 =item * =begin original Many string concatenation expressions are now considerably faster, due to the introduction internally of a C opcode which combines multiple concatenations, and optionally a C<=> or C<.=>, into a single action. For example, apart from retrieving C<$s>, C<$a> and C<$b>, this whole expression is now handled as a single op: =end original 内部的に C オペコードが導入されたことにより、 多くの文字列結合式はかなり速くなりました; これは複数の連結およびオプションの C<=> または C<.=> を単一のアクションに 結合します。 例えば、別々に C<$s>, C<$a>, C<$b> を取得するのではなく、この式全体を 一つの op で扱えるようになりました: $s .= "a=$a b=$b\n" =begin original As a special case, if the LHS of an assignment is a lexical variable or C, the op itself handles retrieving the lexical variable, which is faster. =end original 特別な場合として、代入の左側がレキシカル変数や C の場合、op 自身が レキシカル変数の取得を扱うので、さらに速くなります。 =begin original In general, the more the expression includes a mix of constant strings and variable expressions, the longer the expression, and the more it mixes together non-utf8 and utf8 strings, the more marked the performance improvement. For example on a C system, this code has been benchmarked running four times faster: =end original 一般的に、定数文字列と変数式を混ぜた式が多くなるほど、式が長くなるほど、 より多く非 utf8 文字列と utf8 文字列を混ぜることになるほど、 より大きく性能が改善します。 C システムの例として、このコードのベンチマークは 4 倍速くなります: my $s; my $a = "ab\x{100}cde"; my $b = "fghij"; my $c = "\x{101}klmn"; for my $i (1..10_000_000) { $s = "\x{100}wxyz"; $s .= "foo=$a bar=$b baz=$c"; } =begin original In addition, C expressions which have a constant format containing only C<%s> and C<%%> format elements, and which have a fixed number of arguments, are now also optimised into a C op. =end original さらに、C<%s> と C<%%> のフォーマット要素のみを含む定数フォーマットの C 式で、引数の数が固定の場合、 これも C op に最適化されます。 =item * =begin original The C builtin is now much faster in boolean context, since it no longer bothers to construct a temporary string like C. =end original C 組み込み関数は、真偽値コンテキストで非常に速くなりました; もはや C のような一時的文字列をわざわざ 作らなくなったからです。 =item * =begin original C in void and scalar contexts is now more efficient. =end original 無効コンテキストとスカラコンテキストでの C はより効率的になりました。 =item * =begin original The common idiom of comparing the result of index() with -1 is now specifically optimised, e.g. =end original 次のように、index() の結果を -1 と比較するという一般的な慣用句は特に 最適化されました: if (index(...) != -1) { ... } =item * =begin original C loops and similar constructs are now more efficient in most cases. =end original C ループや似たような構文はほとんどの場合でより効率的になりました。 =item * =begin original L has been modified to remove unnecessary backtracking and recursion, thanks to Russ Cox. See L for more details. =end original L は不必要なバックトラックと再帰を除去するように修正されました; Russ Cox に感謝します。 さらなる詳細については L を 参照してください。 =item * =begin original The XS-level C API function is now more efficient. =end original XS レベルの C API 関数はより効率的になりました。 =item * =begin original Various integer-returning ops are now more efficient in scalar/boolean context. =end original 様々な整数を返す op はスカラ/真偽値コンテキストでより効率的になりました。 =item * =begin original Slightly improved performance when parsing stash names. L<[perl #129990]|https://rt.perl.org/Public/Bug/Display.html?id=129990> =end original スタッシュ名をパースするときに少し性能が向上しました。 L<[perl #129990]|https://rt.perl.org/Public/Bug/Display.html?id=129990> =item * =begin original Calls to C for an already loaded module are now slightly faster. L<[perl #132171]|https://rt.perl.org/Public/Bug/Display.html?id=132171> =end original 既に読み込まれているモジュールに対するo C 呼び出しは少し 速くなりました。 L<[perl #132171]|https://rt.perl.org/Public/Bug/Display.html?id=132171> =item * =begin original The performance of pattern matching C<[[:ascii:]]> and C<[[:^ascii:]]> has been improved significantly except on EBCDIC platforms. =end original パターンマッチング C<[[:ascii:]]> および C<[[:^ascii:]]> の性能は、 EBCDIC プラットフォームを除いて大きく改善しました。 =item * =begin original Various optimizations have been applied to matching regular expression patterns, so under the right circumstances, significant performance gains may be noticed. But in an application with many varied patterns, little overall improvement likely will be seen. =end original 様々な最適化が正規表現パターンマッチングに適用されたので、 条件さえ揃えば、大幅な性能改善に気付くかもしれません。 しかし多くの様々なパターンを使うアプリケーションでは、全体としての改善は ほとんど分からないでしょう。 =item * =begin original Other optimizations have been applied to UTF-8 handling, but these are not typically a major factor in most applications. =end original その他の最適化が UTF-8 の扱いに適用されましたが、これらはほとんどの アプリケーションに対しては典型的には大きな要素にはなりません。 =back =head1 Modules and Pragmata (モジュールとプラグマ) =begin original Key highlights in this release across several modules: =end original このリリースでの複数のモジュールに渡るハイライトは: =head2 Removal of use vars (use vars の削除) =begin original The usage of C has been discouraged since the introduction of C in Perl 5.6.0. Where possible the usage of this pragma has now been removed from the Perl source code. =end original Perl 5.6.0 で C が導入されてから、C の使用は非推奨でした。 このプラグマが使用可能な場所は Perl ソースコードから削除されました。 =begin original This had a slight effect (for the better) on the output of WARNING_BITS in L. =end original これにより L の WARNING_BITS の出力に(良い方向に)少し 影響があります。 =head2 Use of DynaLoader changed to XSLoader in many modules (多くのモジュールでの DynaLoader の使用は XSLoader に変更されました) =begin original XSLoader is more modern, and most modules already require perl 5.6 or greater, so no functionality is lost by switching. In some cases, we have also made changes to the local implementation that may not be reflected in the version on CPAN due to a desire to maintain more backwards compatibility. =end original XSLoader はよりモダンになました; そしてほとんどのモジュールは既に perl 5.6 以上を要求しているので、この切り替えにより失われる機能はありません。 場合によっては、より後方互換性を高めるために CPAN 版には反映されないような 変更を、ローカルの実装に加えています。 =head2 Updated Modules and Pragmata (更新されたモジュールとプラグマ) =over 4 =item * =begin original L has been upgraded from version 2.24 to 2.30. =end original L はバージョン 2.24 から 2.30 に更新されました。 =begin original This update also handled CVE-2018-12015: directory traversal vulnerability. L<[cpan #125523]|https://rt.cpan.org/Ticket/Display.html?id=125523> =end original この更新は、CVE-2018-12015: ディレクトリトラバーサル脆弱性の対応も含みます。 L<[cpan #125523]|https://rt.cpan.org/Ticket/Display.html?id=125523> =item * =begin original L has been upgraded from version 0.12 to 0.15. =end original L はバージョン 0.12 から 0.15 に更新されました。 =item * =begin original L has been upgraded from version 0.99 to 1.01. =end original L はバージョン 0.99 から 1.01 に更新されました。 =item * =begin original L has been upgraded from version 0.29 to 0.33. =end original L はバージョン 0.29 から 0.33 に更新されました。 =item * =begin original L has been upgraded from version 1.68 to 1.74. =end original L はバージョン 1.68 から 1.74 に更新されました。 =item * =begin original L has been upgraded from version 0.999 to 1.003. =end original L はバージョン 0.999 から 1.003 に更新されました。 =item * =begin original L has been upgraded from version 1.24 to 1.26. =end original L はバージョン 1.24 から 1.26 に更新されました。 =begin original NOTE: L is deprecated and may be removed from a future version of Perl. =end original 注意: L は廃止予定であり、将来のバージョンの Perl で 削除される予定です。 =item * =begin original L has been upgraded from version 1.40 to 1.48. =end original L はバージョン 1.40 から 1.48 に更新されました。 =begin original It includes many bug fixes, and in particular, it now deparses variable attributes correctly: =end original 多くのバグ修正を含んでいますが、特に変数属性を正しく 逆パース出来るようになりました: my $x :foo; # used to deparse as # 'attributes'->import('main', \$x, 'foo'), my $x; =item * =begin original L has been upgraded from version 2.25 to 2.27. =end original L はバージョン 2.25 から 2.27 に更新されました。 =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 1.06 to 1.07. =end original L はバージョン 1.06 から 1.07 に更新されました。 =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 1.42 to 1.50. =end original L はバージョン 1.42 から 1.50 に更新されました。 =begin original If a package on the call stack contains a constant named C, Carp no longer throws a "Not a GLOB reference" error. =end original コールスタックのパッケージが C という名前を持っていたとき、 Carp はもはや "Not a GLOB reference" エラーを投げなくなりました。 =begin original L, when generating stack traces, now attempts to work around longstanding bugs resulting from Perl's non-reference-counted stack. L<[perl #52610]|https://rt.perl.org/Ticket/Display.html?id=52610> =end original L は、スタックトレースを生成するときに、Perl の参照カウントされない スタックによる長年のバグを回避しようと試みるようになりました。 L<[perl #52610]|https://rt.perl.org/Ticket/Display.html?id=52610> =begin original Carp has been modified to avoid assuming that objects cannot be overloaded without the L module loaded (this can happen with objects created by XS modules). Previously, infinite recursion would result if an XS-defined overload method itself called Carp. L<[perl #132828]|https://rt.perl.org/Ticket/Display.html?id=132828> =end original Carp は、オブジェクトを L モジュールを読み込むことなく オーバーロードすることはできないという仮定 (これは XS モジュールで作られたオブジェクトでは起こることがありました) をしないように修正されました。 以前は、XS で定義されたオーバーロードメソッド自身が Carp を呼び出すと 無限再帰になっていました。 L<[perl #132828]|https://rt.perl.org/Ticket/Display.html?id=132828> =begin original Carp now avoids using C, partly because older versions of L (included with perl 5.14 and earlier) load L at run time, which will fail if Carp has been invoked after a syntax error. =end original Carp は C の使用を避けるようになりました; 理由の一部は、 古いバージョンの L (perl 5.14 以前に含まれていたもの) は L を実行時に読み込むため、文法エラーの後に Carp が 呼び出されると失敗するからです。 =item * =begin original L has been upgraded from version 1.44 to 1.45. =end original L はバージョン 1.44 から 1.45 に更新されました。 =item * =begin original L has been upgraded from version 2.074 to 2.076. =end original L はバージョン 2.074 から 2.076 に更新されました。 =begin original This addresses a security vulnerability in older versions of the 'zlib' library (which is bundled with Compress-Raw-Zlib). =end original これは、(Compress-Raw-Zlib に同梱されていた) 古いバージョンの 'zlib' ライブラリのセキュリティ脆弱性に対応しました。 =item * =begin original L has been upgraded from version 0.01 to 0.02. =end original L はバージョン 0.01 から 0.02 に更新されました。 =item * =begin original L has been upgraded from version 0.28 to 0.29. =end original L はバージョン 0.28 から 0.29 に更新されました。 =item * =begin original L has been upgraded from version 2.18 to 2.20. =end original L はバージョン 2.18 から 2.20 に更新されました。 =item * =begin original L has been upgraded from version 2.167 to 2.170. =end original L はバージョン 2.167 から 2.170 に更新されました。 =begin original Quoting of glob names now obeys the Useqq option L<[perl #119831]|https://rt.perl.org/Ticket/Display.html?id=119831>. =end original グロブ名のクォートは Useqq オプションを拒否するようになりました L<[perl #119831]|https://rt.perl.org/Ticket/Display.html?id=119831>。 =begin original Attempts to set an option to C through a combined getter/setter method are no longer mistaken for getter calls L<[perl #113090]|https://rt.perl.org/Ticket/Display.html?id=113090>. =end original 結合されたゲッター/セッターメソッドを通してオプションに C を 設定しようとしたとき、もはやゲッター呼び出しを間違わなくなりました L<[perl #113090]|https://rt.perl.org/Ticket/Display.html?id=113090>。 =item * =begin original L has been upgraded from version 1.26 to 1.27. =end original L はバージョン 1.26 から 1.27 に更新されました。 =item * =begin original L has been upgraded from version 3.35 to 3.40. =end original L はバージョン 3.35 から 3.40 に更新されました。 =begin original L has moved from cpan-first to perl-first maintenance =end original L は cpan-first から perl-first にメンテナンスが移りました。 =begin original Primary responsibility for the code in Devel::PPPort has moved into core perl. In a practical sense there should be no change except that hopefully it will stay more up to date with changes made to symbols in perl, rather than needing to be updated after the fact. =end original Devel::PPPort のコードに関する優先的な責任はコア perl に移動しました。 実際問題としては、何かあってから更新が必要になるのではなく、 perl のシンボルに行われた変更により素早く追随できるかもしれないということを 除いて、何の変更もありません。 =item * =begin original L has been upgraded from version 5.96 to 6.01. =end original L はバージョン 5.96 から 6.01 に更新されました。 =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.42 to 1.45. =end original L はバージョン 1.42 から 1.45 に更新されました。 =begin original Its documentation now shows the use of C<__PACKAGE__> and direct object syntax L<[perl #132247]|https://rt.perl.org/Ticket/Display.html?id=132247>. =end original この文書は、C<__PACKAGE__> の使い方と、直接オブジェクト文法について 示すようになりました L<[perl #132247]|https://rt.perl.org/Ticket/Display.html?id=132247>。 =item * =begin original L has been upgraded from version 2.88 to 2.97. =end original L はバージョン 2.88 から 2.97 に更新されました。 =item * =begin original L has been upgraded from version 2.19 to 2.22. =end original L はバージョン 2.19 から 2.22 に更新されました。 =item * =begin original L has been upgraded from version 1.28 to 1.29. =end original L はバージョン 1.28 から 1.29 に更新されました。 =item * =begin original L has been upgraded from version 0.016 to 0.019. =end original L はバージョン 0.016 から 0.019 に更新されました。 =item * =begin original L has been upgraded from version 5.72 to 5.73. =end original L はバージョン 5.72 から 5.73 に更新されました。 =item * =begin original L has been upgraded from version 0.280225 to 0.280230. =end original L はバージョン 0.280225 から 0.280230 に更新されました。 =item * =begin original L has been upgraded from version 0.23 to 0.25. =end original L はバージョン 0.23 から 0.25 に更新されました。 =item * =begin original L has been upgraded from version 1.34 to 1.35. =end original L はバージョン 1.34 から 1.35 に更新されました。 =item * =begin original L has been upgraded from version 2.04 to 2.14. =end original L はバージョン 2.04 から 2.14 に更新されました。 =item * =begin original L has been upgraded from version 7.24 to 7.34. =end original L はバージョン 7.24 から 7.34 に更新されました。 =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 3.34 to 3.39. =end original L はバージョン 3.34 から 3.39 に更新されました。 =item * =begin original L has been upgraded from version 3.34 to 3.38. =end original L はバージョン 3.34 から 3.38 に更新されました。 =item * =begin original L has been upgraded from version 1.3 to 1.4. =end original L はバージョン 1.3 から 1.4 に更新されました。 =item * =begin original L has been upgraded from version 1.47 to 1.52. =end original L はバージョン 1.47 から 1.52 に更新されました。 =item * =begin original L has been upgraded from version 2.23 to 2.24. =end original L はバージョン 2.23 から 2.24 に更新されました。 =item * =begin original L has been upgraded from version 2.32 to 2.33. =end original L はバージョン 2.32 から 2.33 に更新されました。 =begin original It will now use the sub-second precision variant of utime() supplied by L where available. L<[perl #132401]|https://rt.perl.org/Ticket/Display.html?id=132401>. =end original 利用可能な場合は L によって提供される utime() による秒以下の精度を使うようになりました L<[perl #132401]|https://rt.perl.org/Ticket/Display.html?id=132401>. =item * =begin original L has been upgraded from version 0.52 to 0.56. =end original L はバージョン 0.52 から 0.56 に更新されました。 =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 has been upgraded from version 2.12_01 to 2.15. =end original L はバージョン 2.12_01 から 2.15 に更新されました。 =item * =begin original L and L have been upgraded from version 3.67 to 3.74. =end original L と L はバージョン 3.67 から 3.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.09 to 1.10. =end original L はバージョン 1.09 から 1.10 に更新されました。 =item * =begin original L has been upgraded from version 0.93 to 0.95. =end original L はバージョン 0.93 から 0.95 に更新されました。 =item * =begin original L has been upgraded from version 1.55 to 1.58. =end original L はバージョン 1.55 から 1.58 に更新されました。 =item * =begin original L has been upgraded from version 1.15 to 1.17. =end original L はバージョン 1.15 から 1.17 に更新されました。 =begin original Its documentation now explains that C and C don't mix in hashes tied to this module L<[perl #117449]|https://rt.perl.org/Ticket/Display.html?id=117449>. =end original この文書は、C と C はこのモジュールで tie されたハッシュで 混ざらないことを説明するようになりました L<[perl #117449]|https://rt.perl.org/Ticket/Display.html?id=117449>。 =begin original It will now retry opening with an acceptable block size if asking gdbm to default the block size failed L<[perl #119623]|https://rt.perl.org/Ticket/Display.html?id=119623>. =end original It will now retry opening with an acceptable block size if asking gdbm にデフォルトブロックサイズを尋ねるのに失敗した場合、 受け入れられるブロックサイズで開くことを再挑戦するようになりました L<[perl #119623]|https://rt.perl.org/Ticket/Display.html?id=119623>。 =item * =begin original L has been upgraded from version 2.49 to 2.5. =end original L はバージョン 2.49 から 2.5 に更新されました。 =item * =begin original L has been upgraded from version 1.19 to 1.20. =end original L はバージョン 1.19 から 1.20 に更新されました。 =item * =begin original L has been upgraded from version 0.13 to 0.17. =end original L はバージョン 0.13 から 0.17 に更新されました。 =begin original This module is now available on all platforms, emulating the system L on systems that lack it. Some caveats apply, as L, the most severe being that, except for MS Windows, the C item is not implemented on those systems, always returning C<"">. =end original このモジュールは全てのプラットフォームで利用可能になりました; L がないシステムではこれをエミュレートするようになりました。 L<文書に詳細が書かれている|I18N::Langinfo> ように、いくつかの問題はあります; C を実装されていないシステムでの、 MS Windows 以外での最も大きな問題は、 常に C<""> を返すことです。 =begin original It now sets the UTF-8 flag in its returned scalar if the string contains legal non-ASCII UTF-8, and the locale is UTF-8 L<[perl #127288]|https://rt.perl.org/Ticket/Display.html?id=127288>. =end original 文字列が正当な非 ASCII の UTF-8 を含み、ロケールが UTF-8 の場合は、 返されるスカラに UTF-8 フラグを設定するようになりました L<[perl #127288]|https://rt.perl.org/Ticket/Display.html?id=127288>。 =begin original This update also fixes a bug in which the underlying locale was ignored for the C (always was returned as a dot) and the C (always empty). Now the locale-appropriate values are returned. =end original この変更では、C と C においてロケールが無視され、 それぞれ常にドットと空文字列が返るというバグも修正されました。 ロケールに適した値が返されるようになりました。 =item * =begin original L has been upgraded from version 0.42 to 0.43. =end original L はバージョン 0.42 から 0.43 に更新されました。 =item * =begin original L has been upgraded from version 0.0606 to 0.0608. =end original L はバージョン 0.0606 から 0.0608 に更新されました。 =item * =begin original L has been upgraded from version 1.38 to 1.39. =end original L はバージョン 1.38 から 1.39 に更新されました。 =item * =begin original L has been upgraded from version 0.38 to 0.39. =end original L はバージョン 0.38 から 0.39 に更新されました。 =item * =begin original L has been upgraded from version 0.96 to 1.00. =end original L はバージョン 0.96 から 1.00 に更新されました。 =item * =begin original L has been upgraded from version 2.27400_02 to 2.97001. =end original L はバージョン 2.27400_02 から 2.97001 に更新されました。 =item * =begin original The C distribution has been upgraded from version 3.10 to 3.11. =end original C 配布はバージョン 3.10 から 3.11 に更新されました。 =item * =begin original L has been upgraded from version 1.46_02 to 1.49. =end original L はバージョン 1.46_02 から 1.49 に更新されました。 =item * =begin original L has been upgraded from version 3.42 to 3.56. =end original L はバージョン 3.42 から 3.56 に更新されました。 =begin original B: L scheduled to be removed from core in Perl 5.30. =end original B<注意>: L は Perl 5.30 でコアから削除される予定です。 =item * =begin original L has been upgraded from version 1.28 to 1.29. =end original L はバージョン 1.28 から 1.29 に更新されました。 =item * =begin original L has been upgraded from version 1.999806 to 1.999811. =end original L はバージョン 1.999806 から 1.999811 に更新されました。 =item * =begin original L has been upgraded from version 0.5005 to 0.5006. =end original L はバージョン 0.5005 から 0.5006 に更新されました。 =item * =begin original L has been upgraded from version 0.2611 to 0.2613. =end original L はバージョン 0.2611 から 0.2613 に更新されました。 =item * =begin original L has been upgraded from version 5.20170530 to 5.20180622. =end original L はバージョン 5.20170530 から 5.20180622 に更新されました。 =item * =begin original L has been upgraded from version 1.20 to 1.22. =end original L はバージョン 1.20 から 1.22 に更新されました。 =item * =begin original L has been upgraded from version 2.55 to 2.62. =end original L はバージョン 2.55 から 2.62 に更新されました。 =item * =begin original L has been upgraded from version 0.67 to 0.67_01. =end original L はバージョン 0.67 から 0.67_01 に更新されました。 =item * =begin original L has been upgraded from version 1.14 to 1.15. =end original L はバージョン 1.14 から 1.15 に更新されました。 =item * =begin original L has been upgraded from version 1.39 to 1.43. =end original L はバージョン 1.39 から 1.43 に更新されました。 =item * =begin original L has been upgraded from version 1.28 to 1.30. =end original L はバージョン 1.28 から 1.30 に更新されました。 =item * =begin original L has been upgraded from version 0.25 to 0.26. =end original L はバージョン 0.25 から 0.26 に更新されました。 =item * =begin original L has been upgraded from version 0.26 to 0.29. =end original L はバージョン 0.26 から 0.29 に更新されました。 =item * =begin original L has been upgraded from version 0.16 to 0.17. =end original L はバージョン 0.16 から 0.17 に更新されました。 =item * =begin original L has been upgraded from version 1.11 to 1.13. =end original L はバージョン 1.11 から 1.13 に更新されました。 =item * =begin original L has been upgraded from version 1.2202 to 1.24. =end original L はバージョン 1.2202 から 1.24 に更新されました。 =begin original A title for the HTML document will now be automatically generated by default from a "NAME" section in the POD document, as it used to be before the module was rewritten to use L to do the core of its job L<[perl #110520]|https://rt.perl.org/Ticket/Display.html?id=110520>. =end original A title for the HTML 文書のタイトルはデフォルトで POD 文書の "NAME" 節から自動的に 生成されるようになりました; これはモジュールが中心となる作業を行うのに L を使うように 書き直される前と同じ状態です L<[perl #110520]|https://rt.perl.org/Ticket/Display.html?id=110520>. =item * =begin original L has been upgraded from version 3.28 to 3.2801. =end original L はバージョン 3.28 から 3.2801 に更新されました。 =item * =begin original The C distribution has been upgraded from version 4.09 to 4.10. =end original C 配布はバージョン 4.09 から 4.10 に更新されました。 =begin original Man page references and function names now follow the Linux man page formatting standards, instead of the Solaris standard. =end original man ページ参照と関数名は、Solaris の標準ではなく、the Linux man page formatting standards に従うようになりました。 =item * =begin original L has been upgraded from version 1.76 to 1.84. =end original L はバージョン 1.76 から 1.84 に更新されました。 =begin original Some more cautions were added about using locale-specific functions in threaded applications. =end original スレッド対応のアプリケーションでロケール特有の関数を使うことに関する 注意を追加しました。 =item * =begin original L has been upgraded from version 0.34 to 0.36. =end original L はバージョン 0.34 から 0.36 に更新されました。 =item * =begin original L has been upgraded from version 1.46_02 to 1.50. =end original L はバージョン 1.46_02 から 1.50 に更新されました。 =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 2.020_03 to 2.027. =end original L はバージョン 2.020_03 から 2.027 に更新されました。 =item * =begin original L has been upgraded from version 2.02 to 2.04. =end original L はバージョン 2.02 から 2.04 に更新されました。 =item * =begin original L has been upgraded from version 2.62 to 3.08. =end original L はバージョン 2.62 から 3.08 に更新されました。 =item * =begin original L has been upgraded from version 1.48 to 1.49. =end original L はバージョン 1.48 から 1.49 に更新されました。 =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 1.20 to 1.22. =end original L はバージョン 1.20 から 1.22 に更新されました。 =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 1.30 to 1.31. =end original L はバージョン 1.30 から 1.31 に更新されました。 =item * =begin original L has been upgraded from version 3.38 to 3.42. =end original L はバージョン 3.38 から 3.42 に更新されました。 =item * =begin original L has been upgraded from version 1.302073 to 1.302133. =end original L はバージョン 1.302073 から 1.302133 に更新されました。 =item * =begin original L has been upgraded from version 2.15 to 2.22. =end original L はバージョン 2.15 から 2.22 に更新されました。 =begin original The documentation now better describes the problems that arise when returning values from threads, and no longer warns about creating threads in C blocks. L<[perl #96538]|https://rt.perl.org/Ticket/Display.html?id=96538> =end original 文書はスレッドから値を返すときの問題についてよりよく記述するようになり、 もはや C ブロックでスレッドを作ることに関して警告しなくなりました。 L<[perl #96538]|https://rt.perl.org/Ticket/Display.html?id=96538> =item * =begin original L has been upgraded from version 1.56 to 1.58. =end original L はバージョン 1.56 から 1.58 に更新されました。 =item * =begin original L has been upgraded from version 1.06 to 1.07. =end original L はバージョン 1.06 から 1.07 に更新されました。 =item * =begin original L has been upgraded from version 4.4 to 4.5. =end original L はバージョン 4.4 から 4.5 に更新されました。 =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.9741 to 1.9759. =end original L はバージョン 1.9741 から 1.9759 に更新されました。 =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 1.31 to 1.3204. =end original L はバージョン 1.31 から 1.3204 に更新されました。 =item * =begin original L has been upgraded from version 1.19 to 1.25. =end original L はバージョン 1.19 から 1.25 に更新されました。 =item * =begin original L has been upgraded from version 1.25 to 1.26. =end original L はバージョン 1.25 から 1.26 に更新されました。 =item * =begin original L has been upgraded from version 0.68 to 0.70. =end original L はバージョン 0.68 から 0.70 に更新されました。 =begin original The function C now accepts an optional parameter to help in diagnosing error returns. =end original C 関数は、診断エラーを返す助けとなるオプションの引数を 受け付けるようになりました。 =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.00 to 1.01. =end original L はバージョン 1.00 から 1.01 に更新されました。 =item * =begin original L has been upgraded from version 1.19 to 1.21. =end original L はバージョン 1.19 から 1.21 に更新されました。 =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 0.9917 to 0.9923. =end original L はバージョン 0.9917 から 0.9923 に更新されました。 =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 2.41 to 2.44. =end original L はバージョン 2.41 から 2.44 に更新されました。 =item * =begin original L has been upgraded from version 1.37 to 1.42. =end original L はバージョン 1.37 から 1.42 に更新されました。 =begin original It now includes new functions with names ending in C<_at_level>, allowing callers to specify the exact call frame. L<[perl #132468]|https://rt.perl.org/Ticket/Display.html?id=132468> =end original 名前が C<_at_level> で終わる新しい関数が追加され、 呼び出し元が正確な呼び出しフレームを指定できるようになりました。 L<[perl #132468]|https://rt.perl.org/Ticket/Display.html?id=132468> =item * =begin original L has been upgraded from version 0.15 to 0.16. =end original L はバージョン 0.15 から 0.16 に更新されました。 =item * =begin original L has been upgraded from version 0.27 to 0.30. =end original L はバージョン 0.27 から 0.30 に更新されました。 =begin original Its documentation now shows the use of C<__PACKAGE__>, and direct object syntax for example C usage L<[perl #132247]|https://rt.perl.org/Ticket/Display.html?id=132247>. =end original この文書は、C<__PACKAGE__> の使用と、例の C の使用法に関して 直接オブジェクト構文を示すようになりました L<[perl #132247]|https://rt.perl.org/Ticket/Display.html?id=132247>. =begin original Platforms that use C to edit the names of loadable libraries now look for bootstrap (.bs) files under the correct, non-edited name. =end original 読み込み可能ライブラリの名前を変更するのに C を使っている プラットフォームで、正しい、変更されていない名前の ブートストラップファイル (.bs) を探すようになりました。 =back =head2 Removed Modules and Pragmata (削除されたモジュールとプラグマ) =over 4 =item * =begin original The C compatibility shim has been removed. =end original C 互換機能は削除されました。 =back =head1 Documentation (文書) =head2 Changes to Existing Documentation (既存の文書の変更) =begin original We have attempted to update the documentation to reflect the changes listed in this document. If you find any we have missed, send email to L. =end original 私たちはこの文書で挙げられた変更を反映するように文書を更新しようとしています。 もし抜けている物を発見したら、 L にメールしてください。 =begin original Additionally, the following selected changes have been made: =end original それに加えて、以下のような変更が行われました。 =head3 L =over 4 =item * =begin original The API functions C, C, and C are now documented comprehensively, where previously the only documentation was a reference to the L tutorial. =end original API 関数 C, C, C は包括的に 文書化されました; 以前は L チュートリアルへの参照しか ありませんでした。 =item * =begin original The documentation of C has been belatedly updated to account for the removal of lexical C<$_>. =end original C の文書は、遅ればせながらレキシカルな C<$_> の削除に 対応する形で更新されました。 =item * =begin original The API functions C and C are documented much more comprehensively than before. =end original API 関数 C と C は以前よりさらに 包括的に文書化されました。 =back =head3 L =over 4 =item * =begin original The section "Truth and Falsehood" in L has been moved into L. =end original L の "Truth and Falsehood" の章が L に移動しました。 =back =head3 L =over 4 =item * =begin original The description of the conditions under which C will be called has been clarified. L<[perl #131672]|https://rt.perl.org/Ticket/Display.html?id=131672> =end original C が呼び出される条件の記述を明確化しました。 L<[perl #131672]|https://rt.perl.org/Ticket/Display.html?id=131672> =back =head3 L =over 4 =item * L =begin original This now gives more ideas as to workarounds to the issue that was introduced in Perl 5.18 (but not documented explicitly in its perldelta) for the fact that some Unicode C rules cause a few sequences such as =end original これは、Perl 5.18 で導入された (しかしその perldelta には明示的には 文書化されなかった) 問題を回避するためのさらなるアイデアを 与えるようになりました; この問題は、一部の Unicode の C 規則は 次のようなものを: (? =begin original This entry has been removed, as the experimental support of this construct was removed in perl 5.24.0. =end original この実験的な構文は perl 5.24.0 で削除されたので、この項は削除されました。 =item * =begin original The diagnostic C has changed to C, because list-context initialization of single aggregate state variables is now permitted. =end original 診断メッセージ C は C に変更されました; 単一の集合 state 変数による リストコンテキストの初期化は許されるようになったからです。 =back =head3 L =over 4 =item * =begin original The examples in L have been made more portable in the way they exit, and the example that gets an exit code from the embedded Perl interpreter now gets it from the right place. The examples that pass a constructed argv to Perl now show the mandatory null C. =end original L にある例は、終了方法に関してより移植性があるようになり、 組み込み Perl インタプリタからの終了コードを得る例については 正しい場所から得るようになりました。 構成された argv を Perl に渡す例では、C に null が 必須であることを示すようになりました。 =item * =begin original An example in L used the string value of C as a format string when calling croak(). If that string contains format codes such as C<%s> this could crash the program. =end original L の例は、croak() を呼び出すとき、C の文字列値を フォーマット文字列として使っていました。 この文字列に C<%s> のようなフォーマットコードが含まれていると、 プログラムをクラッシュさせることがありました。 =begin original This has been changed to a call to croak_sv(). =end original これは croak_sv() の呼び出しに変更されました。 =begin original An alternative could have been to supply a trivial format string: =end original 代替案はよくある型式文字列を補う方法: croak("%s", SvPV_nolen(ERRSV)); =begin original or as a special case for C simply: =end original あるは単に C 専用の方法として: croak(NULL); =back =head3 L =over 4 =item * =begin original There is now a note that warnings generated by built-in functions are documented in L and L. L<[perl #116080]|https://rt.perl.org/Ticket/Display.html?id=116080> =end original 組み込み関数によって生成される警告は L と L に 文書化されていることが記述されました。 L<[perl #116080]|https://rt.perl.org/Ticket/Display.html?id=116080> =item * =begin original The documentation for the C operator no longer says that autovivification behaviour "may be fixed in a future release". We've determined that we're not going to change the default behaviour. L<[perl #127712]|https://rt.perl.org/Ticket/Display.html?id=127712> =end original C 演算子の文書はもはや、自動有効化の振る舞いが 「将来のリリースで修正予定」とは書かれなくなりました。 私たちはデフォルトの振る舞いを変えようとはしないことを決定しました。 L<[perl #127712]|https://rt.perl.org/Ticket/Display.html?id=127712> =item * =begin original A couple of small details in the documentation for the C operator have been clarified. L<[perl #124428]|https://rt.perl.org/Ticket/Display.html?id=124428> =end original C 演算子の文書に関するいくつかの小さな詳細が明確化されました。 L<[perl #124428]|https://rt.perl.org/Ticket/Display.html?id=124428> =item * =begin original The description of C<@INC> hooks in the documentation for C has been corrected to say that filter subroutines receive a useless first argument. L<[perl #115754]|https://rt.perl.org/Ticket/Display.html?id=115754> =end original C の文書の中の C<@INC> フックの記述は、 フィルタサブルーチンは使い道のない最初の引数を受け取ることを記すように 修正されました。 L<[perl #115754]|https://rt.perl.org/Ticket/Display.html?id=115754> =item * =begin original The documentation of C has been rewritten for clarity. =end original C の文書は明確化のために書き直されました。 =item * =begin original The documentation of C now explains what syntactically qualifies as a version number for its module version checking feature. =end original C の文書は、バージョンチェック機能に関して、何が文法的に バージョン番号として正しいと認められるかを説明するようになりました。 =item * =begin original The documentation of C has been updated to reflect that since Perl 5.14 it has treated complex exception objects in a manner equivalent to C. L<[perl #121372]|https://rt.perl.org/Ticket/Display.html?id=121372> =end original C の文書は、Perl 5.14 から複雑な例外オブジェクトを C と等価な方法で扱うことを反映するように更新されました。 L<[perl #121372]|https://rt.perl.org/Ticket/Display.html?id=121372> =item * =begin original The documentation of C and C has been revised for clarity. =end original C と C の文書は、明確化のために見直されました。 =item * =begin original The documentation of C has been improved, with a slightly more explicit description of the sharing of iterator state, and with caveats regarding the fragility of while-each loops. L<[perl #132644]|https://rt.perl.org/Ticket/Display.html?id=132644> =end original C の文書は改善され、反復子状態の共有に関するもう少し明示的な記述と、 while-each の虚弱性による警告で改善されました。 L<[perl #132644]|https://rt.perl.org/Ticket/Display.html?id=132644> =item * =begin original Clarification to C was added to explain the differences between =end original 次のものの違いを説明するために、C の明確化が追加されました: require Foo::Bar; require "Foo/Bar.pm"; =back =head3 L =over 4 =item * =begin original The precise rules for identifying C branches are now stated. =end original C ブランチを識別するための正確な規則が記述されました。 =back =head3 L =over 4 =item * =begin original The section on reference counting in L has been heavily revised, to describe references in the way a programmer needs to think about them rather than in terms of the physical data structures. =end original L の参照カウントの章は大きく見直され、プログラマが、 物理的なデータ構造の意味ではなく、これに関して考える必要がある方法に 関して記述されるようになりました。 =item * =begin original Improve documentation related to UTF-8 multibytes. =end original UTF-8 マルチバイトに関する文書の改善。 =back =head3 L =over 4 =item * =begin original The internal functions C and C are now documented. =end original 内部関数 C および C が文書化されました。 =back =head3 L =over 4 =item * =begin original The documentation about C methods has been corrected, updated, and revised, especially in regard to how they interact with exceptions. L<[perl #122753]|https://rt.perl.org/Ticket/Display.html?id=122753> =end original C メソッドの文書は修正、更新、見直しされました; 特に、例外とどのように相互作用するかに関する部分です。 L<[perl #122753]|https://rt.perl.org/Ticket/Display.html?id=122753> =back =head3 L =over 4 =item * =begin original The description of the C operator in L has been clarified. L<[perl #132460]|https://rt.perl.org/Ticket/Display.html?id=132460> =end original L の C 演算子の記述が明確化されました。 L<[perl #132460]|https://rt.perl.org/Ticket/Display.html?id=132460> =item * =begin original L has been updated to note that C's whitespace rules differ from that of C's in that only ASCII whitespace is used. =end original L は、C の空白規則がASCII 空白のみを使う C のものとは 異なることを記すように更新されました。 =item * =begin original The general explanation of operator precedence and associativity has been corrected and clarified. L<[perl #127391]|https://rt.perl.org/Ticket/Display.html?id=127391> =end original 演算子の優先順位と結合性に関する一般的な説明が修正および明確化されました。 L<[perl #127391]|https://rt.perl.org/Ticket/Display.html?id=127391> =item * =begin original The documentation for the C<\> referencing operator now explains the unusual context that it supplies to its operand. L<[perl #131061]|https://rt.perl.org/Ticket/Display.html?id=131061> =end original C<\> 参照演算子に関する文書は、そのオペランドに適用される 一般的でないコンテキストに関して説明するようになりました。 L<[perl #131061]|https://rt.perl.org/Ticket/Display.html?id=131061> =back =head3 L =over 4 =item * =begin original Clarifications on metacharacters and character classes =end original メタ文字と文字クラスの明確化。 =back =head3 L =over 4 =item * =begin original Clarify metacharacters. =end original メタ文字の明確化。 =back =head3 L =over 4 =item * =begin original Clarify the differences between B<< -M >> and B<< -m >>. L<[perl #131518]|https://rt.perl.org/Ticket/Display.html?id=131518> =end original B<< -M >> と B<< -m >> の違いの明確化。 L<[perl #131518]|https://rt.perl.org/Ticket/Display.html?id=131518> =back =head3 L =over 4 =item * =begin original The documentation about set-id scripts has been updated and revised. L<[perl #74142]|https://rt.perl.org/Ticket/Display.html?id=74142> =end original set-id スクリプトに関する文書が更新されました。 L<[perl #74142]|https://rt.perl.org/Ticket/Display.html?id=74142> =item * =begin original A section about using C to run Perl scripts has been added. =end original Perl スクリプトの実行に C を使うことに関する章が追加されました。 =back =head3 L =over 4 =item * =begin original The section "Truth and Falsehood" in L has been removed from that document, where it didn't belong, and merged into the existing paragraph on the same topic in L. =end original L の「真偽値」の章は、ここと関係がないので削除され、 L にある同じ話題の段落と結合されました。 =item * =begin original The means to disambiguate between code blocks and hash constructors, already documented in L, are now documented in L too. L<[perl #130958]|https://rt.perl.org/Ticket/Display.html?id=130958> =end original コードブロックとハッシュ構築子の間の曖昧さをなくす方法は、既に L に文書化されていますが、L でも文書化されました。 L<[perl #130958]|https://rt.perl.org/Ticket/Display.html?id=130958> =back =head3 L =over 4 =item * =begin original L has been updated to note that C<\p{Word}> now includes code points matching the C<\p{Join_Control}> property. The change to the property was made in Perl 5.18, but not documented until now. There are currently only two code points that match this property U+200C (ZERO WIDTH NON-JOINER) and U+200D (ZERO WIDTH JOINER). =end original L は、C<\p{Word}> に C<\p{Join_Control}> 特性に マッチングする符号位置が含まれることを注意するように更新されました。 この特性に対する変更は Perl 5.18 で行われていましたが、 今まで文書化されていませんでした。 今のところこの特性にマッチングするのは U+200C (ZERO WIDTH NON-JOINER) と U+200D (ZERO WIDTH JOINER) の二つの符号位置だけです。 =item * =begin original For each binary table or property, the documentation now includes which characters in the range C<\x00-\xFF> it matches, as well as a list of the first few ranges of code points matched above that. =end original 各バイナリテーブルや特性に関して、この文書は、 C<\x00-\xFF> の範囲でどの文字がマッチングするか、および、 それ以上の符号位置の範囲でマッチングする最初のいくつかの範囲の一覧を 含むようになりました。 =back =head3 L =over 4 =item * =begin original The entry for C<$+> in perlvar has been expanded upon to describe handling of multiply-named capturing groups. =end original perlvar の C<$+> のエントリは、複数の名前を持つ捕捉グループの扱いに関する 記述が拡張されました。 =back =head3 L, L, L =over 4 =item * =begin original In various places, improve the documentation of the special cases in the condition expression of a while loop, such as implicit C and assignment to C<$_>. L<[perl #132644]|https://rt.perl.org/Ticket/Display.html?id=132644> =end original 様々な場所で、暗黙の C や C<$_> への代入のような、 while ループの条件式での特殊ケースに関する文書が改善しました。 L<[perl #132644]|https://rt.perl.org/Ticket/Display.html?id=132644> =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 * LgotoE into a EgivenE block"> =begin original (F) A "goto" statement was executed to jump into the middle of a C block. You can't get there from here. See L. =end original (F) C ブロックの途中に飛び込むような "goto" 文が実行されました。 ここでそれはできません。 L を参照してください。 =item * LgotoE into a binary or list expression"> =begin original Use of C to jump into the parameter of a binary or list operator has been prohibited, to prevent crashes and stack corruption. L<[perl #130936]|https://rt.perl.org/Ticket/Display.html?id=130936> =end original 二項演算子やリスト演算子の引数に飛び込むために C を使うことは、 クラッシュやスタック破壊を防ぐために禁止されています。 L<[perl #130936]|https://rt.perl.org/Ticket/Display.html?id=130936> =begin original You may only enter the I argument of an operator that takes a fixed number of arguments, since this is a case that will not cause stack corruption. L<[perl #132854]|https://rt.perl.org/Ticket/Display.html?id=132854> =end original 固定数の引数を取る演算子の最初の引数にのみ入ることができます; この場合はスタック破壊をもたらさないからです。 L<[perl #132854]|https://rt.perl.org/Ticket/Display.html?id=132854> =back =head3 New Warnings (新しい警告) =over 4 =item * L =begin original (W syntax) You used the old package separator, "'", in a variable named inside a double-quoted string; e.g., C<"In $name's house">. This is equivalent to C<"In $name::s house">. If you meant the former, put a backslash before the apostrophe (C<"In $name\'s house">). =end original (W syntax) C<"In $name's house"> のように、ダブルクォート文字列の内側の 変数名に古いパーケージ区切り文字である "'" を使いました。 これは C<"In $name::s house"> と等価です。 前者を意味しているなら、アポストロフィの前に逆スラッシュを置いてください (C<"In $name\'s house">)。 =item * L =back =head2 Changes to Existing Diagnostics (既存の診断メッセージの変更) =over 4 =item * =begin original A false-positive warning that was issued when using a numerically-quantified sub-pattern in a recursive regex has been silenced. L<[perl #131868]|https://rt.perl.org/Public/Bug/Display.html?id=131868> =end original 再帰正規表現内で数値で量指定された副パターンを使ったときの 偽陽性の警告はは起こらなくなりました。 L<[perl #131868]|https://rt.perl.org/Public/Bug/Display.html?id=131868> =item * =begin original The warning about useless use of a concatenation operator in void context is now generated for expressions with multiple concatenations, such as C<$a.$b.$c>, which used to mistakenly not warn. L<[perl #6997]|https://rt.perl.org/Ticket/Display.html?id=6997> =end original 無効コンテキストでの結合演算子の無意味な使用に関する警告は、 C<$a.$b.$c> のような複数の結合を持つ式でも発生するようになりました; 以前は誤って警告されていませんでした。 L<[perl #6997]|https://rt.perl.org/Ticket/Display.html?id=6997> =item * =begin original Warnings that a variable or subroutine "masks earlier declaration in same ...", or that an C variable has been redeclared, have been moved to a new warnings category "shadow". Previously they were in category "misc". =end original 変数やサブルーチンに対する "masks earlier declaration in same ..." 警告や C 変数の再宣言に関する警告は、新しい警告カテゴリ "shadow" に 移動しました。 以前はこれらは "misc" カテゴリでした。 =item * =begin original The deprecation warning from C saying that it doesn't accept arguments now states the Perl version in which the warning will be upgraded to an error. L<[perl #124349]|https://rt.perl.org/Ticket/Display.html?id=124349> =end original C による、これは引数を受け取らないという 廃止予定警告は、警告がエラーになる Perl バージョンについて 言及するようになりました。 L<[perl #124349]|https://rt.perl.org/Ticket/Display.html?id=124349> =item * =begin original The L entry for the error regarding a set-id script has been expanded to make clear that the error is reporting a specific security vulnerability, and to advise how to fix it. =end original L の、set-id スクリプトに関するエラーのエントリは、 エラーは特定のセキュリティ脆弱性を報告しているということと、これを どのように修正するかについて明確になるように拡張されました。 =item * =begin original The C<< Unable to flush stdout >> error message was missing a trailing newline. [debian #875361] =end original C<< Unable to flush stdout >> エラーメッセージは末尾の改行が抜けていました。 [debian #875361] =back =head1 Utility Changes (ツールの変更) =head2 L =over 4 =item * =begin original C<--help> and C<--version> options have been added. =end original C<--help> と C<--version> のオプションが追加されました。 =back =head1 Configuration and Compilation (設定とコンパイル) =over 4 =item * C89 requirement =begin original Perl has been documented as requiring a C89 compiler to build since October 1998. A variety of simplifications have now been made to Perl's internals to rely on the features specified by the C89 standard. We believe that this internal change hasn't altered the set of platforms that Perl builds on, but please report a bug if Perl now has new problems building on your platform. =end original 1998 年 10 月から、Perl はビルドするのに C89 コンパイラが必要であると 文書化されていました。 Perl の内部は、C89 標準で定義されている機能に依存することで、 様々な単純化が行われました。 私たちはこの内部変更が Perl がビルドできるプラットフォーム一覧に 影響を与えないと信じていますが、もしあなたのプラットフォームでのビルドに 新しい問題が起きた場合はバグを報告してください。 =item * =begin original On GCC, C<-Werror=pointer-arith> is now enabled by default, disallowing arithmetic on void and function pointers. =end original GCC では、C<-Werror=pointer-arith> はデフォルトで有効になり、 void や関数ポインタに対する算術演算が禁止されました。 =item * =begin original Where an HTML version of the documentation is installed, the HTML documents now use relative links to refer to each other. Links from the index page of L to the individual section documents are now correct. L<[perl #110056]|https://rt.perl.org/Ticket/Display.html?id=110056> =end original HTML 版の文書をインストールしているとき、HTML 文書は互いを参照するのに 相対リンクを使うようになりました。 Links from the index page of L のインデックスページから個々の章の文書へのリンクは 正しくなりました。 L<[perl #110056]|https://rt.perl.org/Ticket/Display.html?id=110056> =item * =begin original F now correctly canonicalizes the names of the dependencies stored in the files it generates. =end original F は、作成したファイルに保管されている依存名を 正しく正規化するようになりました。 =begin original F, unlike the other F scripts, used C<$0> to name itself in the dependencies stored in the files it generates. It now uses a literal so that the path stored in the generated files doesn't depend on how F is invoked. =end original F は、その他の F スクリプトと異なり、 生成するファイルに保管される依存の名前自身として C<$0> を使っていました。 これはリテラルを使うようになったので、生成されたファイルに保管されたパスは、 どのように F が起動されたかに依存しなくなりました。 =begin original This lack of canonical names could cause test failures in F. L<[perl #132925]|https://rt.perl.org/Ticket/Display.html?id=132925> =end original 正規化名がない場合に F でテストが失敗することがありました。 L<[perl #132925]|https://rt.perl.org/Ticket/Display.html?id=132925> =item * New probes =over 2 =item HAS_BUILTIN_ADD_OVERFLOW =item HAS_BUILTIN_MUL_OVERFLOW =item HAS_BUILTIN_SUB_OVERFLOW =item HAS_THREAD_SAFE_NL_LANGINFO_L =item HAS_LOCALECONV_L =item HAS_MBRLEN =item HAS_MBRTOWC =item HAS_MEMRCHR =item HAS_NANOSLEEP =item HAS_STRNLEN =item HAS_STRTOLD_L =item I_WCHAR =back =back =head1 Testing (テスト) =over 4 =item * =begin original Testing of the XS-APItest directory is now done in parallel, where applicable. =end original XS-APItest ディレクトリのテストは、可能な場合は並列に 行われるようになりました。 =item * =begin original Perl now includes a default F<.travis.yml> file for Travis CI testing on github mirrors. L<[perl #123981]|https://rt.perl.org/Ticket/Display.html?id=123981> =end original Perl は github ミラーでの Travis CI テストのためのデフォルトの F<.travis.yml> ファイルを含むようになりました。 L<[perl #123981]|https://rt.perl.org/Ticket/Display.html?id=123981> =item * =begin original The watchdog timer count in F can now be overridden. =end original F の番犬タイマーカウントは上書きできるようになりました。 =begin original This test can take a long time to run, so there is a timer to keep this in check (currently, 5 minutes). This commit adds checking the environment variable C<< PERL_TEST_TIME_OUT_FACTOR >>; if set, the time out setting is multiplied by its value. =end original このテストは実行に長い時間が掛かるため、これをチェックするための タイマーがあります (現在は 5 分)。 このコミットでは環境変数 C<< PERL_TEST_TIME_OUT_FACTOR >> のチェックを 追加します; これが設定されると、タイムアウト設定はその値で乗算されます。 =item * =begin original F no longer waits for 30 seconds when running F. L<[perl #121028]|https://rt.perl.org/Ticket/Display.html?id=121028> L<[perl #132867]|https://rt.perl.org/Ticket/Display.html?id=132867> =end original F は F の実行時にもはや 30 秒待たなくなりました。 L<[perl #121028]|https://rt.perl.org/Ticket/Display.html?id=121028> L<[perl #132867]|https://rt.perl.org/Ticket/Display.html?id=132867> =back =head1 Packaging (パッケージング) =begin original For the past few years we have released perl using three different archive formats: bzip (C<.bz2>), LZMA2 (C<.xz>) and gzip (C<.gz>). Since xz compresses better and decompresses faster, and gzip is more compatible and uses less memory, we have dropped the C<.bz2> archive format with this release. (If this poses a problem, do let us know; see L, below.) =end original 過去数年、私たちは三つの異なるアーカイブ形式で perl をリリースしてきました: bzip (C<.bz2>), LZMA2 (C<.xz>), gzip (C<.gz>) です。 xz は圧縮率がよく展開が高速で、gzip は互換性が高くメモリ消費が少ないので、 このリリースから C<.bz2> アーカイブ形式でリリースしなくなりました。 (もしこれが問題を引き起こすなら、教えてください; 後述する L を参照してください。) =head1 Platform Support (プラットフォーム対応) =head2 Discontinued Platforms (削除されたプラットフォーム) =over 4 =item PowerUX / Power MAX OS =begin original Compiler hints and other support for these apparently long-defunct platforms has been removed. =end original これらの、どうやら長い間死んだままのプラットフォームに関するコンパイラヒントや その他の対応は削除されました。 =back =head2 Platform-Specific Notes (プラットフォーム固有の注意) =over 4 =item CentOS =begin original Compilation on CentOS 5 is now fixed. =end original CentOS 5 でのコンパイルは修正されました。 =item Cygwin =begin original A build with the quadmath library can now be done on Cygwin. =end original quadmath ライブラリを使ったコンパイルは Cygwin で行えるようになりました。 =item Darwin =begin original Perl now correctly uses reentrant functions, like C, on versions of Darwin that have support for them. =end original C のような再入可能関数に対応しているバージョンの Darwin では、 Perl は正しくこれらを使うようになりました。 =item FreeBSD =begin original FreeBSD's F<< /usr/share/mk/sys.mk >> specifies C<< -O2 >> for architectures other than ARM and MIPS. By default, perl is now compiled with the same optimization levels. =end original FreeBSD の F<< /usr/share/mk/sys.mk >> は、ARM と MIPS 以外の アーキテクチャでは C<< -O2 >> を指定するようになりました。 デフォルトでは perl は同じ最適化レベルでコンパイルされます。 =item VMS =begin original Several fix-ups for F, marking function VMS has (or doesn't have). =end original VMS が持っている (または持っていない) 関数を記すために、 いくつかの修正が F に行われました。 =begin original CRTL features can now be set by embedders before invoking Perl by using the C and C functions. Previously any attempt to set features after image initialization were ignored. =end original CRTL 機能は、C と C の関数を 使うことで、Perl を起動する前に組み込み側から設定できるようになりました。 以前は、イメージ初期化後にこの機能を設定しようとしても無視されていました。 =item Windows =over 4 =item * =begin original Support for compiling perl on Windows using Microsoft Visual Studio 2017 (containing Visual C++ 14.1) has been added. =end original (Visual C++ 14.1 を含む) Microsoft Visual Studio 2017 を使って Windows で perl をコンパイルする機能が追加されました。 =item * =begin original Visual C++ compiler version detection has been improved to work on non-English language systems. =end original 非英語システムでのVisual C++ コンパイラのバージョン検出が改善しました。 =item * =begin original We now set C<$Config{libpth}> correctly for 64-bit builds using Visual C++ versions earlier than 14.1. =end original 14.1 より前のバージョンでの Visual C++ を使った 64 ビットビルドで、 正しく C<$Config{libpth}> を設定するようになりました。 =back =back =head1 Internal Changes (内部の変更) =over 4 =item * =begin original A new optimisation phase has been added to the compiler, C, which does a top-down scan of a complete optree just before the peephole optimiser is run. This phase is not currently hookable. =end original C という新しい最適化フェイズがコンパイラに追加されました; これはピープホール最適化器が実行される直前に、完全な op 木を トップダウンでスキャンします。 このフェーズは今のところフックできません。 =item * =begin original An C op has been added. At C time, a chain of C and C ops, together optionally with an C and/or C, are combined into a single C op. The op is of type C, and the aux array contains the argument count, plus a pointer to a constant string and a set of segment lengths. For example with =end original C op が追加されました。 C のときに、 C と C op のチェーン、およびオプションの C や C は、単一の C op に 結合されます。 この op は C 型で、aux 配列には引数カウントに加えて、 定数文字列へのポインタとセグメント長の集合を含みます。 例えば次のものでは: my $x = "foo=$foo, bar=$bar\n"; =begin original the constant string would be C<"foo=, bar=\n"> and the segment lengths would be (4,6,1). If the string contains characters such as C<\x80>, whose representation changes under utf8, two sets of strings plus lengths are precomputed and stored. =end original 定数文字列は C<"foo=, bar=\n"> で、セグメント長は (4,6,1) です。 文字列に utf8 の基で表現が変わる C<\x80> のような文字が含まれている場合、 文字列と長さの組が二つ事前計算されて保管されます。 =item * =begin original Direct access to L|perlapi/PL_keyword_plugin> is not safe in the presence of multithreading. A new L|perlapi/wrap_keyword_plugin> function has been added to allow XS modules to safely define custom keywords even when loaded from a thread, analogous to L|perlapi/PL_check> / L|perlapi/wrap_op_checker>. =end original L|perlapi/PL_keyword_plugin> への直接アクセスは、 マルチスレッド時には安全ではありません。 スレッドから読み込まれても XS モジュールが安全にカスタムキーワードを 定義できる、新しい L|perlapi/wrap_keyword_plugin> 関数が追加されました; L|perlapi/PL_check> / L|perlapi/wrap_op_checker> の関係と同様です。 =item * =begin original The C interpreter variable has been removed. =end original C インタプリタ変数は削除されました。 =item * =begin original The deprecated function C, accessible from XS code, has been removed. =end original XS からアクセス可能であった廃止予定の関数 C は 削除されました。 =item * =begin original A new function L|perlapi/is_utf8_invariant_string_loc> has been added that is like L|perlapi/is_utf8_invariant_string> but takes an extra pointer parameter into which is stored the location of the first variant character, if any are found. =end original 新しい関数 L|perlapi/is_utf8_invariant_string_loc> が追加されました; これは L|perlapi/is_utf8_invariant_string> と 同様ですが、もしあれば最初の異体文字の位置を保管するための追加の ポインタ引数を取ります。 =item * =begin original A new function, L|perlapi/Perl_langinfo> has been added. It is an (almost) drop-in replacement for the system C, but works on platforms that lack that; as well as being more thread-safe, and hiding some gotchas with locale handling from the caller. Code that uses this, needn't use L> (and be affected by the gotchas) to find the decimal point, thousands separator, or currency symbol. See L. =end original 新しい関数 L|perlapi/Perl_langinfo> が追加されました。 これは システムの C の(ほとんど)完全互換品ですが、 これがないプラットフォームでも動作します; あmた、よりスレッドセーフで、ロケールの扱いに関するいくつかの癖を 呼び出し元から隠します。 これを使っているコードは、小数点や桁区切りや通貨記号を探すのに L> を使う (そして癖による影響を受ける) 必要はありません。 L を参照してください。 =item * =begin original A new API function L|perlapi/sv_rvunweaken> has been added to complement L|perlapi/sv_rvweaken>. The implementation was taken from L. =end original 新しい API 関数 L|perlapi/sv_rvunweaken> が L|perlapi/sv_rvweaken> の逆として追加されました。 この実装は L から取られています。 =item * =begin original A new flag, C, has been added. This will allow a future commit to make mergesort unstable when the user specifies `no sort stable', since it has been decided that mergesort should remain stable by default. =end original 新しいフラグ C が追加されました。 これにより、将来ユーザーが `no sort stable' を指定したときに マージソートを不安定にするような変更が可能になります。 マージソートはデフォルトで安定したままであると決定されたからです。 =item * =begin original XS modules can now automatically get reentrant versions of system functions on threaded perls. =end original スレッド対応 perl では XS モジュールは自動的に再入可能版の システム関数を使えるようになりました。 =begin original By adding =end original これを #define PERL_REENTRANT =begin original near the beginning of an C file, it will be compiled so that whatever reentrant functions perl knows about on that system will automatically and invisibly be used instead of the plain, non-reentrant versions. For example, if you write C in your code, on a system that has C all calls to the former will be translated invisibly into the latter. This does not happen except on threaded perls, as they aren't needed otherwise. Be aware that which functions have reentrant versions varies from system to system. =end original C ファイルの先頭付近に置くと、このシステムに再入可能関数があることを perl が知っている場合、自動的に通常の非再入可能版ではなくこちらが 使われるようにコンパイルされます。 例えば、コード中に C を書くと、C を持つ システムでは、前者の呼び出しは自動的に後者の呼び出しに変換されます。 これはスレッド対応 perl でしか起こりません; それ以外では不要だからです。 どの関数が再入可能かについてはシステムによって異なることに注意してください。 =item * =begin original The C build define is no longer supported, which means that perl is now always built with C enabled. =end original C ビルド定義はもはや非対応となりました; つまり、 perl は常に C を有効にしてビルドされます。 =item * =begin original The format and content of the non-utf8 transliteration table attached to the C field of C/C ops has changed. It's now a C. =end original C/C op の C フィールドに付けられる 非 utf8 文字変換テーブルの形式と内容が変わりました。 これは C になりました。 =item * =begin original A new compiler C<#define>, C. has been added. This is useful for XS or C code that only need the thread context because their debugging statements that get compiled only under C<-DDEBUGGING> need one. =end original 新しいコンパイラ C<#define> である C が追加されました。 これは、C<-DDEBUGGING> の基でしかコンパイルされないデバッグ文が 必要としているというだけの理由でスレッドのコンテキストが 必要な XS や C のコードに有用です。 =item * =begin original A new API function L has been added. =end original 新しい API 関数 L が追加されました。 =item * =begin original L has been revised to return a boolean as to whether the system was using the global locale or not. =end original L は、システムがグローバルなロケールを使うかどうかを 示す真偽値を返すように改訂されました。 =item * =begin original A new kind of magic scalar, called a "nonelem" scalar, has been introduced. It is stored in an array to denote a non-existent element, whenever such an element is accessed in a potential lvalue context. It replaces the existing "defelem" (deferred element) magic wherever this is possible, being significantly more efficient. This means that C no longer has to create a new magic defelem scalar each time, as long as the element is within the array. =end original "nonelem" スカラと呼ばれる、新しい種類のマジックスカラが導入されました。 これは、要素が存在しないことを示すために配列に保管されます; この要素が潜在的な左辺値コンテキストとしてアクセスされるかには依りません。 これは可能な場所ではどこでも既存の "defelem" (deferred element) マジックを置き換え、かなりより効率的です。 つまり、C は、その要素が配列の中に ある限り、もはや毎回新しい defelem マジックスカラを作る必要は ないということです。 =begin original It partially fixes the rare bug of deferred elements getting out of synch with their arrays when the array is shifted or unshifted. L<[perl #132729]|https://rt.perl.org/Ticket/Display.html?id=132729> =end original これは、配列がシフトしたり逆シフトしたりするとき、保留された要素とその 配列との同期が取れなくなるという稀なバグを部分的に修正します。 L<[perl #132729]|https://rt.perl.org/Ticket/Display.html?id=132729> =back =head1 Selected Bug Fixes (バグ修正の抜粋) =over 4 =item * =begin original List assignment (C) could in some rare cases allocate an entry on the mortals stack and leave the entry uninitialized, leading to possible crashes. L<[perl #131570]|https://rt.perl.org/Ticket/Display.html?id=131570> =end original リスト代入 (C) は、ある種の稀な状況で、 揮発性スタックにエントリを割り当て、そのエントリを初期化しないままにして、 クラッシュを引き起こす可能性がありました。 L<[perl #131570]|https://rt.perl.org/Ticket/Display.html?id=131570> =item * =begin original Attempting to apply an attribute to an C variable where a function of that name already exists could result in a NULL pointer being supplied where an SV was expected, crashing perl. L<[perl #131597]|https://rt.perl.org/Ticket/Display.html?id=131597> =end original 既にその名前の関数が存在する C 変数に属性を適用しようとすると、 SV が想定されているところで NULL ポインタが渡され、perl が クラッシュすることがありました。 L<[perl #131597]|https://rt.perl.org/Ticket/Display.html?id=131597> =item * =begin original C now correctly handles the argument being split when in the scope of the L<< C|feature/"The 'unicode_strings' feature" >> feature. Previously, when a string using the single-byte internal representation contained characters that are whitespace by Unicode rules but not by ASCII rules, it treated those characters as part of fields rather than as field separators. L<[perl #130907]|https://rt.perl.org/Ticket/Display.html?id=130907> =end original C は、 L<< C|feature/"The 'unicode_strings' feature" >> 機能の スコープ内で split される引数を正しく扱えるようになりました。 以前は、Unicode の規則では空白だけれども ASCII の規則ではそうでない文字を 含んだ単一バイト内部表現を使った文字列を使うと、 これはフィールド区切り文字ではなくフィールドの一部として扱われていました。 L<[perl #130907]|https://rt.perl.org/Ticket/Display.html?id=130907> =item * =begin original Several built-in functions previously had bugs that could cause them to write to the internal stack without allocating room for the item being written. In rare situations, this could have led to a crash. These bugs have now been fixed, and if any similar bugs are introduced in future, they will be detected automatically in debugging builds. =end original いくつかの組み込み関数は、内容を書き込むための割り当てる場所がない 内部スタックに書き込むことがあるというバグがありました。 まれな状況では、これがクラッシュを引き起こすことがありました。 これらのバグは修正され、 もし同様のバグが将来導入された場合も、デバッグビルドで自動的に 検出されるようになりました。 =begin original These internal stack usage checks introduced are also done by the C operator when calling XSUBs. This means we can report which XSUB failed to allocate enough stack space. L<[perl #131975]|https://rt.perl.org/Public/Bug/Display.html?id=131975> =end original 導入されたこれらの内部スタック使用チェックは、 XSUB の呼び出し時に C 演算子によっても行われます。 つまり、どの XSUB が十分なスタック空間を割り当てるのに失敗したかを 報告できるということです。 L<[perl #131975]|https://rt.perl.org/Public/Bug/Display.html?id=131975> =item * =begin original Using a symbolic ref with postderef syntax as the key in a hash lookup was yielding an assertion failure on debugging builds. L<[perl #131627]|https://rt.perl.org/Ticket/Display.html?id=131627> =end original ハッシュ参照のキーとして接尾辞デリファレンス文法のシンボリックリファレンスを 使うと、デバッグビルドでアサート失敗を引き起こしていました。 L<[perl #131627]|https://rt.perl.org/Ticket/Display.html?id=131627> =item * =begin original Array and hash variables whose names begin with a caret now admit indexing inside their curlies when interpolated into strings, as in C<< "${^CAPTURE[0]}" >> to index C<@{^CAPTURE}>. L<[perl #131664]|https://rt.perl.org/Ticket/Display.html?id=131664> =end original キャレットで始まる名前を持つ配列変数とハッシュ変数は、 文字列に変数置換されるときに、 C<@{^CAPTURE}> の添え字としての C<< "${^CAPTURE[0]}" >> のように、 中かっこの中に添え字を入れることを許すようになりました。 L<[perl #131664]|https://rt.perl.org/Ticket/Display.html?id=131664> =item * =begin original Fetching the name of a glob that was previously UTF-8 but wasn't any longer would return that name flagged as UTF-8. L<[perl #131263]|https://rt.perl.org/Ticket/Display.html?id=131263> =end original 以前は UTF-8 だったけれども今は違うグロブ名を取得すると、 UTF-8 フラグの付いた名前を返していました。 L<[perl #131263]|https://rt.perl.org/Ticket/Display.html?id=131263> =item * =begin original The perl C function (via the underlying C function C) has been heavily reworked to fix many minor bugs, including the integer wrapping of large width and precision specifiers and potential buffer overruns. It has also been made faster in many cases. =end original (基となる C 関数 C 経由の) perl の C 関数は、大きな幅や精度指定子による整数回り込みや バッファオーバーランの可能性を含む、 多くの小さなバグを修正するために大幅に書き直されました。 これにより多くの場合でより速くなりました。 =item * =begin original Exiting from an C, whether normally or via an exception, now always frees temporary values (possibly calling destructors) I setting C<$@>. For example: =end original 通常か例外によってかに関わらず、C から終了した場合、 (おそらくデストラクタを呼び出す) C<$@> を設定する I<前に>、 常に一時的な値を解放するようになりました。 例えば: sub DESTROY { eval { die "died in DESTROY"; } } eval { bless []; }; # $@ used to be equal to "died in DESTROY" here; it's now "". =item * =begin original Fixed a duplicate symbol failure with C<-flto -mieee-fp> builds. F defined C<_LIB_VERSION> which C<-lieee> already defines. L<[perl #131786]|https://rt.perl.org/Ticket/Display.html?id=131786> =end original C<-flto -mieee-fp> ビルドでの重複シンボルエラーが修正されました。 F は C<_LIB_VERSION> を定義していましたが、C<-lieee> がすでに 定義していました。 L<[perl #131786]|https://rt.perl.org/Ticket/Display.html?id=131786> =item * =begin original The tokenizer no longer consumes the exponent part of a floating point number if it's incomplete. L<[perl #131725]|https://rt.perl.org/Ticket/Display.html?id=131725> =end original 字句解析器はもはや、不完全な浮動小数点数の指数部を消費しなくなりました。 L<[perl #131725]|https://rt.perl.org/Ticket/Display.html?id=131725> =item * =begin original On non-threaded builds, for C where C<$null> is an empty string is no longer treated as if the C flag was present when the previous matching match operator included the C flag. The rewriting used to implement this behavior could confuse the interpreter. This matches the behaviour of threaded builds. L<[perl #124368]|https://rt.perl.org/Ticket/Display.html?id=124368> =end original 非スレッドビルドで、 C<$null> が空文字列のときの C は、 もはや、以前のマッチング演算子に C が含まれていても、 C フラグがあるかのように振る舞わなくなりました。 この振る舞いの実装のための書き直しはインタプリタを混乱させることがありました。 これはスレッドビルドの振る舞いと一致します。 L<[perl #124368]|https://rt.perl.org/Ticket/Display.html?id=124368> =item * =begin original Parsing a C definition could cause a use after free if the C keyword was followed by whitespace including newlines (and comments.) L<[perl #131836]|https://rt.perl.org/Public/Bug/Display.html?id=131836> =end original C キーワードに改行を含む空白(およびコメント)が引き続く場合、 C 宣言が解放後使用を引き起こすことがありました。 L<[perl #131836]|https://rt.perl.org/Public/Bug/Display.html?id=131836> =item * =begin original The tokenizer now correctly adjusts a parse pointer when skipping whitespace in a C<< ${identifier} >> construct. L<[perl #131949]|https://rt.perl.org/Public/Bug/Display.html?id=131949> =end original 字句解析器は、 C<< ${identifier} >> 構文の中の空白を読み飛ばすときに、 パースポインタを正しく調整するようになりました。 L<[perl #131949]|https://rt.perl.org/Public/Bug/Display.html?id=131949> =item * =begin original Accesses to C<${^LAST_FH}> no longer assert after using any of a variety of I/O operations on a non-glob. L<[perl #128263]|https://rt.perl.org/Public/Bug/Display.html?id=128263> =end original C<${^LAST_FH}> へのアクセスは、もはや非グロブへの I/O 操作を使った後に アサートを発生させなくなりました。 L<[perl #128263]|https://rt.perl.org/Public/Bug/Display.html?id=128263> =item * =begin original The XS-level C, C, C macros and their variants now assert if the pointers supplied are C. ISO C considers supplying NULL pointers to the functions these macros are built upon as undefined behaviour even when their count parameters are zero. Based on these assertions and the original bug report three macro calls were made conditional. L<[perl #131746]|https://rt.perl.org/Public/Bug/Display.html?id=131746> L<[perl #131892]|https://rt.perl.org/Public/Bug/Display.html?id=131892> =end original XS レベルの C, C, C マクロおよびその変種は、 提供されたポインタが C のときにアサートするようになりました。 ISO C では、これらのマクロで使われる関数に NULL が提供された場合、 たとえカウンタ引数が 0 でも振る舞いは未定義です。 これらのアサートと元のバグ報告に従って、三つのマクロ呼び出しは 条件付きになりました。 L<[perl #131746]|https://rt.perl.org/Public/Bug/Display.html?id=131746> L<[perl #131892]|https://rt.perl.org/Public/Bug/Display.html?id=131892> =item * =begin original Only the C<=> operator is permitted for defining defaults for parameters in subroutine signatures. Previously other assignment operators, e.g. C<+=>, were also accidentally permitted. L<[perl #131777]|https://rt.perl.org/Public/Bug/Display.html?id=131777> =end original サブルーチンシグネチャの引数のデフォルトを定義するのに、 C<=> 演算子のみが許されるようになりました。 以前は、C<+=> のようなその他の代入演算子も誤って許されていました。 L<[perl #131777]|https://rt.perl.org/Public/Bug/Display.html?id=131777> =item * =begin original Package names are now always included in C<:prototype> warnings L<[perl #131833]|https://rt.perl.org/Public/Bug/Display.html?id=131833> =end original C<:prototype> 警告で常にパッケージ名が含まれるようになりました L<[perl #131833]|https://rt.perl.org/Public/Bug/Display.html?id=131833> =item * =begin original The C field, previously only found in the C structure on debugging builds, has been added to non-debug builds as well. This fixes an issue with some CPAN modules caused by the size of this structure varying between debugging and non-debugging builds. L<[perl #131942]|https://rt.perl.org/Public/Bug/Display.html?id=131942> =end original 以前はデバッグビルでのみ C 構造体に存在した C フィールドが、非デバッグビルドでも 存在するようになりました。 これにより、この構造体のサイズがデバッグビルドと非デバッグビルドで 異なることよる、いくつかの CPAN モジュールの問題が修正されます。 L<[perl #131942]|https://rt.perl.org/Public/Bug/Display.html?id=131942> =item * =begin original The arguments to the C macro are now correctly parenthesized. =end original C マクロへの引数は正しくかっこが付くようになりました。 =item * =begin original A NULL pointer dereference in the C function has been fixed. L<[perl #132017]|https://rt.perl.org/Public/Bug/Display.html?id=132017> =end original C 関数での NULL ポインタのデリファレンスが修正されました。 L<[perl #132017]|https://rt.perl.org/Public/Bug/Display.html?id=132017> =item * =begin original Calling L with an empty C has been fixed. This should call C with an empty C array (containing only the terminating C pointer), but was instead just returning false (and not setting L|perlvar/$!>). L<[perl #131730]|https://rt.perl.org/Public/Bug/Display.html?id=131730> =end original 空の C で L を 呼び出したときの問題が修正されました。 これは空の (終端の C ポインタのみを含む) C 配列で C を呼び出すべきでしたが、単に (L|perlvar/$!> を設定せずに) 偽を返していました。 L<[perl #131730]|https://rt.perl.org/Public/Bug/Display.html?id=131730> =item * =begin original The C C function stopped working properly in Perl 5.22 when fetching a constant with a UTF-8 name if that constant subroutine was stored in the stash as a simple scalar reference, rather than a full typeglob. This has been corrected. =end original Perl 5.22 では C C 関数は、 UTF-8 名を持つ定数を取り出すときに、その定数サブルーチンが 完全な型グロブではなく単純なスカラリファレンスとしてスタッシュに 保管されていると、正しく動作しなくなっていました。 これは修正されました。 =item * =begin original Single-letter debugger commands followed by an argument which starts with punctuation (e.g. C and C) now work again. They had been wrongly requiring a space between the command and the argument. L<[perl #120174]|https://rt.perl.org/Public/Bug/Display.html?id=120174> =end original 1 文字デバッガコマンドに句読点文字で始まる引数が引き続く場合 (例えば C や C)も、再び動作するようになりました。 以前は誤ってコマンドと引数の間に空白を要求していました。 L<[perl #120174]|https://rt.perl.org/Public/Bug/Display.html?id=120174> =item * =begin original L now throws an exception ("Modification of a read-only value attempted") when modifying a read-only array. Until now it had been silently modifying the array. The new behaviour is consistent with the behaviour of L and L. L<[perl #131000]|https://rt.perl.org/Public/Bug/Display.html?id=131000> =end original L は、 読み込み専用配列を変更しようとしたときに例外 ("Modification of a read-only value attempted") を投げるようになりました。 以前は暗黙に配列を変更していました。 新しい振る舞いは L および L の振る舞いと一貫性があります。 L<[perl #131000]|https://rt.perl.org/Public/Bug/Display.html?id=131000> =item * =begin original C, C, and file test operators now fail if given a filename containing a nul character, in the same way that C already fails. =end original C, C およびファイルテスト演算子は、 nul 文字を含んでいるときに失敗するようになりました; C は既に失敗するようになっていました。 =item * =begin original C, C, and file test operators now reliably set C<$!> when failing due to being applied to a closed or otherwise invalid file handle. =end original C, C およびファイルテスト演算子は、 閉じていたりその他の理由で不正なファイルハンドルに対して適用されたことによる 失敗が起きたときに、確実に C<$!> を設定するようになりました。 =item * =begin original File test operators for Unix permission bits that don't exist on a particular platform, such as C<-k> (sticky bit) on Windows, now check that the file being tested exists before returning the blanket false result, and yield the appropriate errors if the argument doesn't refer to a file. =end original Windows での C<-k> (sticky bit) のような、特定のプラットフォームに存在しない Unix の許可ビットに対するファイルテスト演算子は、無差別に偽の結果を返す前に、 そのファイルが存在するかどうかをテストして、引数がファイルを参照していない 場合は適切なエラーを返すようになりました。 =item * =begin original Fixed a 'read before buffer' overrun when parsing a range starting with C<\N{}> at the beginning of the character set for the transliteration operator. L<[perl #132245]|https://rt.perl.org/Ticket/Display.html?id=132245> =end original 文字変換演算子の文字集合の最初の C<\N{}> で始まる範囲をパースするときの 'read before buffer' オーバーランが 修正されました。 L<[perl #132245]|https://rt.perl.org/Ticket/Display.html?id=132245> =item * =begin original Fixed a leaked scalar when parsing an empty C<\N{}> at compile-time. L<[perl #132245]|https://rt.perl.org/Ticket/Display.html?id=132245> =end original コンパイル時に空の C<\N{}> パースするときにスカラがリークする問題が 修正されました。 L<[perl #132245]|https://rt.perl.org/Ticket/Display.html?id=132245> =item * =begin original Calling C on a directory or block device now yields a meaningful error code in C<$!>. L<[perl #125774]|https://rt.perl.org/Ticket/Display.html?id=125774> =end original ディレクトリやブロックデバイスに対するC は、 C<$!> に意味のあるエラーコードを設定するようになりました。 L<[perl #125774]|https://rt.perl.org/Ticket/Display.html?id=125774> =item * =begin original Regexp substitution using an overloaded replacement value that provides a tainted stringification now correctly taints the resulting string. L<[perl #115266]|https://rt.perl.org/Ticket/Display.html?id=115266> =end original 汚染された文字列化を提供するオーバーロードされた置換値を使った 正規表現置換は、正しく結果文字列が汚染されるようになりました。 L<[perl #115266]|https://rt.perl.org/Ticket/Display.html?id=115266> =item * =begin original Lexical sub declarations in C blocks such as C could corrupt the stack, erasing items already on the stack in the enclosing statement. This has been fixed. L<[perl #132442]|https://rt.perl.org/Ticket/Display.html?id=132442> =end original C のような、C ブロックの中のレキシカルな サブルーチン宣言がスタックを壊して、内側の文のスタックに既にある内容を 消すことがありました。 これは修正されました。 L<[perl #132442]|https://rt.perl.org/Ticket/Display.html?id=132442> =item * =begin original C and C can now handle repeat counts and lengths that exceed two billion. L<[perl #119367]|https://rt.perl.org/Ticket/Display.html?id=119367> =end original C と C は、繰り返しカウントと長さに 20 億を超える値を 扱えるようになりました。 L<[perl #119367]|https://rt.perl.org/Ticket/Display.html?id=119367> =item * =begin original Digits past the radix point in octal and binary floating point literals now have the correct weight on platforms where a floating point significand doesn't fit into an integer type. =end original 8 進と 2 進の浮動小数点数リテラルの小数点の後ろの数字は、 浮動小数点数の仮数部が整数型に納まらないプラットフォームでも正しい重みを 持つようになりました。 =item * =begin original The canonical truth value no longer has a spurious special meaning as a callable subroutine. It used to be a magic placeholder for a missing C or C method, but is now treated like any other string C<1>. L<[perl #126042]|https://rt.perl.org/Ticket/Display.html?id=126042> =end original 正規化された真の値は、もはや呼び出し可能なサブルーチンとしての偽の 特別な意味を持たなくなりました。 これは C や C のメソッドがないときのマジカルな プレースホルダとして使われていましたが、 その他の文字列 C<1> と同様に扱われるようになりました。 L<[perl #126042]|https://rt.perl.org/Ticket/Display.html?id=126042> =item * =begin original C now reduces its arguments to strings in the parent process, so any effects of stringifying them (such as overload methods being called or warnings being emitted) are visible in the way the program expects. L<[perl #121105]|https://rt.perl.org/Ticket/Display.html?id=121105> =end original C は、引数から文字列への変換を親プロセスで行うようになったので、 それを文字列化したときの効果 (オーバーロードの呼び出しや警告の出力など) は、 プログラムが想定した方法で現れるようになりました。 L<[perl #121105]|https://rt.perl.org/Ticket/Display.html?id=121105> =item * =begin original The C built-in function now checks at compile time that it has only one parameter expression, and puts it in scalar context, thus ensuring that it doesn't corrupt the stack at runtime. L<[perl #4574]|https://rt.perl.org/Ticket/Display.html?id=4574> =end original C 組み込み関数は、引数式が一つしかなく、 それがスカラコンテキストであることをコンパイル時に チェックするようになったので、 実行時にスタックを壊さないようになりました。 L<[perl #4574]|https://rt.perl.org/Ticket/Display.html?id=4574> =item * =begin original C now performs correct reference counting when aliasing C<$a> and C<$b>, thus avoiding premature destruction and leakage of scalars if they are re-aliased during execution of the sort comparator. L<[perl #92264]|https://rt.perl.org/Ticket/Display.html?id=92264> =end original C は C<$a> と C<$b> を別名化したときに参照カウントを正しく 扱うようになったので、ソート比較子の実行中に再び別名化したときに スカラの早すぎる破壊とリークを起こさないようになりました。 L<[perl #92264]|https://rt.perl.org/Ticket/Display.html?id=92264> =item * =begin original C with no operand, reversing C<$_> by default, is no longer in danger of corrupting the stack. L<[perl #132544]|https://rt.perl.org/Ticket/Display.html?id=132544> =end original 引数なしの C はデフォルトでは C<$_> を反転しますが、 もはやスタックを壊す危険がなくなりました。 L<[perl #132544]|https://rt.perl.org/Ticket/Display.html?id=132544> =item * =begin original C, C, et al are no longer liable to have their argument lists corrupted by reentrant calls and by magic such as tied scalars. L<[perl #129888]|https://rt.perl.org/Ticket/Display.html?id=129888> =end original C, C などはもはや、再入呼び出しや tie されたスカラのような マジックによって引数リストが壊れても責任をもたなくなりました。 L<[perl #129888]|https://rt.perl.org/Ticket/Display.html?id=129888> =item * =begin original Perl's own C no longer gets confused by attempts to allocate more than a gigabyte on a 64-bit platform. L<[perl #119829]|https://rt.perl.org/Ticket/Display.html?id=119829> =end original Perl 自身の C は、64 ビットプラットフォームで 1 ギガバイト以上 割り当てようとしても、もはや混乱しなくなりました。 L<[perl #119829]|https://rt.perl.org/Ticket/Display.html?id=119829> =item * =begin original Stacked file test operators in a sort comparator expression no longer cause a crash. L<[perl #129347]|https://rt.perl.org/Ticket/Display.html?id=129347> =end original ソート比較式の中でファイルテスト演算子をスタック差せてももはや クラッシュしなくなりました。 L<[perl #129347]|https://rt.perl.org/Ticket/Display.html?id=129347> =item * =begin original An identity C transformation on a reference is no longer mistaken for that reference for the purposes of deciding whether it can be assigned to. L<[perl #130578]|https://rt.perl.org/Ticket/Display.html?id=130578> =end original リファレンスへの同一の C 変換はもはや、 代入可能かどうかの判断のためのリファレンスと間違わなくなりました。 L<[perl #130578]|https://rt.perl.org/Ticket/Display.html?id=130578> =item * =begin original Lengthy hexadecimal, octal, or binary floating point literals no longer cause undefined behaviour when parsing digits that are of such low significance that they can't affect the floating point value. L<[perl #131894]|https://rt.perl.org/Ticket/Display.html?id=131894> =end original 長い 16 進、8 進、2 進浮動小数点数リテラルは、浮動小数点数として影響を 与えないような下位の桁をパースするときに、もはや未定義の振る舞いを しなくなりました。 L<[perl #131894]|https://rt.perl.org/Ticket/Display.html?id=131894> =item * =begin original C and similar invocations no longer leak the file handle. L<[perl #115814]|https://rt.perl.org/Ticket/Display.html?id=115814> =end original C や同様の起動はもはやファイルハンドルを リークしなくなりました。 L<[perl #115814]|https://rt.perl.org/Ticket/Display.html?id=115814> =item * =begin original Some convoluted kinds of regexp no longer cause an arithmetic overflow when compiled. L<[perl #131893]|https://rt.perl.org/Ticket/Display.html?id=131893> =end original ある種の複雑な正規表現はもはやコンパイル時に算術オーバーフローを 引き起こさなくなりました。 L<[perl #131893]|https://rt.perl.org/Ticket/Display.html?id=131893> =item * =begin original The default typemap, by avoiding C, now no longer leaks when XSUBs return file handles (C or C). L<[perl #115814]|https://rt.perl.org/Ticket/Display.html?id=115814> =end original C を避けたことによるデフォルトの typemap は、 XSUBs がファイルハンドル (C または C) を返したときに もはやリークしなくなりました。 L<[perl #115814]|https://rt.perl.org/Ticket/Display.html?id=115814> =item * =begin original Creating a C block as an XS subroutine with a prototype no longer crashes because of the early freeing of the subroutine. =end original プロトタイプ付きの XS サブルーチンとして C を作った場合、 もはやサブルーチンの早い解放によってクラッシュしなくなりました。 =item * =begin original The C format specifier C<%.0f> no longer rounds incorrectly L<[perl #47602]|https://rt.perl.org/Ticket/Display.html?id=47602>, and now shows the correct sign for a negative zero. =end original C フォーマット指定子 C<%.0f> はもはや誤った丸めを行わなくなり L<[perl #47602]|https://rt.perl.org/Ticket/Display.html?id=47602>、 負の 0 に関して正しい符号を表示するようになりました。 =item * =begin original Fixed an issue where the error C<< Scalar value @arrayname[0] better written as $arrayname >> would give an error C<< Cannot printf Inf with 'c' >> when arrayname starts with C<< Inf >>. L<[perl #132645]|https://rt.perl.org/Ticket/Display.html?id=132645> =end original C<< Scalar value @arrayname[0] better written as $arrayname >> エラーが出るところで、配列名が C<< Inf >> で始まっていると、 C<< Cannot printf Inf with 'c' >> エラーが出る問題が修正されました。 L<[perl #132645]|https://rt.perl.org/Ticket/Display.html?id=132645> =item * =begin original The Perl implementation of C<< getcwd() >> in C<< Cwd >> in the PathTools distribution now behaves the same as XS implementation on errors: it returns an error, and sets C<< $! >>. L<[perl #132648]|https://rt.perl.org/Ticket/Display.html?id=132648> =end original PathTools 配布の C<< Cwd >> の C<< getcwd() >> の Perl 実装は、 エラーに関して XS 実装と同じ振る舞いをするようになりました: これはエラーを返し、C<< $! >> を設定します。 L<[perl #132648]|https://rt.perl.org/Ticket/Display.html?id=132648> =item * =begin original Vivify array elements when putting them on the stack. Fixes L<[perl #8910]|https://rt.perl.org/Ticket/Display.html?id=8910> (reported in April 2002). =end original 配列要素はスタックに置かれた時点で有効化されるようになりました。 Fixes L<[perl #8910]|https://rt.perl.org/Ticket/Display.html?id=8910> (2002 年 4 月に報告されました)。 =item * =begin original Fixed parsing of braced subscript after parens. Fixes L<[perl #8045]|https://rt.perl.org/Ticket/Display.html?id=8045> (reported in December 2001). =end original かっこに引き続く大かっこによる添え字のパースが修正されました。 L<[perl #8045]|https://rt.perl.org/Ticket/Display.html?id=8045> (2001 年 12 月に報告されました)。 =item * =begin original C could give the wrong results when the length of the replacement character list was greater than 0x7fff. =end original C は、置き換える文字リストの長さが 0x7fff を超える場合に間違った結果を返していました。 =item * =begin original C failed to add the implied C<\x{100}-\x{7fffffff}> to the search character list. =end original C は検索文字リストに暗黙の C<\x{100}-\x{7fffffff}> を追加するのに失敗していました。 =item * =begin original Compilation failures within "perl-within-perl" constructs, such as with string interpolation and the right part of C, now cause compilation to abort earlier. =end original 文字列の変数置換や C の右側のような、 「perl 内部の perl」構文内でのコンパイル失敗は、 より早い時点でコンパイルを中止するようになりました。 =begin original Previously compilation could continue in order to report other errors, but the failed sub-parse could leave partly parsed constructs on the parser shift-reduce stack, confusing the parser, leading to perl crashes. L<[perl #125351]|https://rt.perl.org/Ticket/Display.html?id=125351> =end original 以前は、他のエラーを報告するためにコンパイルが続行し、 しかし失敗した部分パースが部分的にパースした構文をパーサの shift-reduce スタックに残すことがあり、 パーサが混乱して、perl のクラッシュを引き起こしていました。 L<[perl #125351]|https://rt.perl.org/Ticket/Display.html?id=125351> =item * =begin original On threaded perls where the decimal point (radix) character is not a dot, it has been possible for a race to occur between threads when one needs to use the real radix character (such as with C). This has now been fixed by use of a mutex on systems without thread-safe locales, and the problem just doesn't come up on those with thread-safe locales. =end original 小数点(基数点)文字がドットでないスレッド対応 perl で、 本当の小数点文字が必要になった場合、スレッド間で競合状態となることが ありました。 これは、ロケールがスレッドセーフでないシステムではミューテックスを使うことで 修正されました; ロケールがスレッドセーフの場合はそもそもこの問題は 発生しません。 =item * =begin original Errors while compiling a regex character class could sometime trigger an assertion failure. L<[perl #132163]|https://rt.perl.org/Ticket/Display.html?id=132163> =end original 正規表現文字クラスのコンパイル時のエラーが、ときどきアサート失敗を 引き起こしていました。 L<[perl #132163]|https://rt.perl.org/Ticket/Display.html?id=132163> =back =head1 Acknowledgements =begin original Perl 5.28.0 represents approximately 13 months of development since Perl 5.26.0 and contains approximately 730,000 lines of changes across 2,200 files from 77 authors. =end original Perl 5.28.0 は、Perl 5.26.0 以降、76 人の作者によって、 2,200 のファイルに約 730,000 行の変更を加えて、 約 12 ヶ月開発されてきました。 =begin original Excluding auto-generated files, documentation and release tools, there were approximately 580,000 lines of changes to 1,300 .pm, .t, .c and .h files. =end original 自動生成ファイル、文書、リリースツールを除くと、1,300 の .pm, .t, .c, .h ファイルに約 580,000 行の変更を加えました。 =begin original Perl continues to flourish into its fourth decade thanks to a vibrant community of users and developers. The following people are known to have contributed the improvements that became Perl 5.28.0: =end original Perl は、活気のあるユーザーと開発者のコミュニティのおかげで 30 年を超えて 繁栄しています。 以下の人々が、Perl 5.28.0 になるための改良に貢献したことが分かっています: Aaron Crane, Abigail, Evar ArnfjErE Bjarmason, Alberto SimEes, Alexandr Savca, Andrew Fresh, Andy Dougherty, Andy Lester, Aristotle Pagaltzis, Ask BjErn Hansen, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari MannsEker, Dan Collins, Daniel Dragan, David Cantrell, David Mitchell, Dmitry Ulanov, Dominic Hargreaves, E. Choroba, Eric Herman, Eugen Konkov, Father Chrysostomos, Gene Sullivan, George Hartzell, Graham Knop, Harald JErg, H.Merijn Brand, Hugo van der Sanden, Jacques Germishuys, James E Keenan, Jarkko Hietaniemi, Jerry D. Hedden, J. Nick Koston, John Lightsey, John Peacock, John P. Linderman, John SJ Anderson, Karen Etheridge, Karl Williamson, Ken Brown, Ken Cotterill, Leon Timmermans, Lukas Mai, Marco Fontani, Marc-Philip Werner, Matthew Horsfall, Neil Bowers, Nicholas Clark, Nicolas R., Niko Tyni, Pali, Paul Marquess, Peter John Acklam, Reini Urban, Renee Baecker, Ricardo Signes, Robin Barker, Sawyer X, Scott Lanning, Sergey Aleynikov, Shirakata Kentaro, Shoichi Kaji, Slaven Rezic, Smylers, Steffen MEller, Steve Hay, Sullivan Beck, Thomas Sibley, Todd Rinaldo, Tomasz Konojacki, Tom Hukins, Tom Wyant, Tony Cook, Vitali Peil, Yves Orton, Zefram. =begin original The list above is almost certainly incomplete as it is automatically generated from version control history. In particular, it does not include the names of the (very much appreciated) contributors who reported issues to the Perl bug tracker. =end original これはバージョンコントロール履歴から自動的に生成しているので、ほぼ確実に 不完全です。 特に、Perl バグトラッカーに問題を報告をしてくれた (とてもありがたい)貢献者の 名前を含んでいません。 =begin original Many of the changes included in this version originated in the CPAN modules included in Perl's core. We're grateful to the entire CPAN community for helping Perl to flourish. =end original このバージョンに含まれている変更の多くは、Perl コアに含まれている CPAN モジュール由来のものです。 私たちは Perl の発展を助けている CPAN コミュニティ全体に感謝します。 =begin original For a more complete list of all of Perl's historical contributors, please see the F file in the Perl source distribution. =end original 全ての Perl の歴史的な貢献者のより完全な一覧については、どうか Perl ソース 配布に含まれている F を参照してください。 =head1 Reporting Bugs (バグ報告) =begin original If you find what you think is a bug, you might check the perl bug database at L . There may also be information at L , the Perl Home Page. =end original もしバグと思われるものを見つけたら、 L にある perl バグ データベースを確認してください。 Perl ホームページ、L にも情報があります。 =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 see L for details of how to report the issue. =end original 報告しようとしているバグがセキュリティに関するもので、公開されている メーリングリストに送るのが不適切なものなら、バグの報告方法の詳細について L を参照してください。 =head1 Give Thanks (感謝を伝える) =begin original If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you can do so by running the C program: =end original もし Perl 5 でなされた作業について Perl 5 Porters に感謝したいと考えたなら、 C プログラムを実行することでそうできます: perlthanks =begin original This will send an email to the Perl 5 Porters list with your show of thanks. =end original これは Perl 5 Porters メーリングリストにあなたの感謝の言葉をメールします。 =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: translated =end meta