=encoding utf8 =head1 NAME =begin original perldelta - what is new for perl v5.42.0 =end original perl5420delta - perl v5.42.0 での変更点 =head1 DESCRIPTION =begin original This document describes differences between the 5.42.0 release and the 5.40.0 release. =end original この文書は 5.42.0 リリースと 5.40.0 リリースの変更点を記述しています。 =head1 Core Enhancements (コアの拡張) =head2 More CORE:: subs =begin original C has been added as a subroutine to the C namespace. =end original C がサブルーチンとしてCORE:: 名前空間に追加されました。 =begin original Previously, code like C<&CORE::chdir($dir)> or C<< my $ref = \&CORE::chdir; $ref->($dir) >> would throw an error saying C<&CORE::chdir cannot be called directly>. These cases are now fully supported. =end original 以前は、C<&CORE::chdir($dir)> や C<< my $ref = \&CORE::chdir; $ref->($dir) >> の ようなコードは、C<&CORE::chdir cannot be called directly> というエラーを 投げていました。 このような場合は、今では完全に対応しています。 =head2 New pragma C> =begin original This allows you to declare that the portion of a program for the remainder of the lexical scope of this pragma is encoded either entirely in ASCII (for S>) or if UTF-8 is allowed as well (for S>). No other encodings are accepted. The second form is entirely equivalent to S>, and may be used interchangeably with that. =end original これにより、このプラグマのレキシカルスコープの残りの部分のプログラム部分が 完全に ASCII (S> の場合)または UTF-8 も許可されている場合(S>の場合)の いずれかでエンコードされることを宣言できます。 他のエンコーディングは受け入れられません。 2 番目の形式は完全に S> と等価であり、これと同じ意味で 使えます。 =begin original The purpose of this pragma is to catch cases early where you forgot to specify S>. =end original このプラグマの目的は、S> の指定を忘れたケースを早期に 検出することです。 =begin original S> is automatically enabled within the lexical scope of a S> or higher. =end original S> は、S> 以降の レキシカルスコープ内では自動的に有効になります。 =begin original S> turns off all this checking for the remainder of its lexical scope. The meaning of non-ASCII characters is then undefined. =end original S> は、そのレキシカルスコープの残りの部分について、 このチェックをすべてオフにします。 そして非 ASCII 文字の意味は未定義です。 =head2 New C<:writer> attribute on field variables =begin original Classes defined using C are now able to automatically create writer accessors for scalar fields, by using the C<:writer> attribute, similar to the way that C<:reader> already creates reader accessors. =end original C<:reader> がすでに読み込みアクセサを作成しているのと同様に、 C<:writer> 属性を使って C<:use feature'class'> で定義されたクラスが スカラフィールドの書き込みアクセサを自動的に作成できるようになりました。 class Point { field $x :reader :writer :param; field $y :reader :writer :param; } my $p = Point->new( x => 20, y => 40 ); $p->set_x(60); =head2 New C and C operators =begin original Two new experimental features have been added, which introduce the list-processing operators C and C. =end original 二つの新しい実験的機能が追加されました; リスト処理演算子 C と C です。 use v5.42; use feature 'keyword_all'; no warnings 'experimental::keyword_all'; my @numbers = ... if ( all { $_ % 2 == 0 } @numbers ) { say "All the numbers are even"; } =begin original These keywords operate similarly to C except that they only ever return true or false, testing if any (or all) of the elements in the list make the testing block yield true. Because of this they can short-circuit, avoiding the need to test any further elements if a given element determines the eventual result. =end original これらのキーワードは C と同様に動作しますが、真または偽のみを返し、 リスト内のいずれか(またはすべて)の要素がテストブロックの結果を 真にするかどうかをテストする点が異なります。 このため、これらは短絡することができ、特定の要素が最終的な結果を決定した場合に、 それ以上の要素をテストする必要がなくなります。 =begin original These are inspired by the same-named functions in the L module, except that they are implemented as direct core operators, and thus perform faster, and do not produce an additional subroutine call stack frame for invoking the code block. =end original これらは、L モジュールの同じ名前の関数から着想を得たものですが、 直接コア演算子として実装されているため、より高速に実行され、 コードブロックを呼び出すための追加のサブルーチン呼び出しスタックフレームを 生成しない点が異なります。 =begin original The feature flags enabling those keywords have been named L|feature/"The 'keyword_any' feature"> and L|feature/"The 'keyword_all' feature"> to avoid confusion with the ability of the C module to refer to all of its features by using the C<:all> export tag. [L] =end original これらのキーワードを有効にする機能フラグは、C<:all> エクスポートタグを使って すべての機能を参照する C モジュールの機能との混乱を避けるために、 L|feature/"The 'keyword_any' feature"> および L|feature/"The 'keyword_all' feature"> という 名前が付けられています。 [L] =begin original The related experimental warning flags are consequently named C and C. =end original したがって、関連する実験的な警告フラグは、 C と C および CおよびC という 名前になります。 =head2 Apostrophe as a global name separator can be disabled =begin original This was deprecated in Perl 5.38 and removed as scheduled in perl 5.41.3, but after some discussion has been reinstated by default. =end original これは Perl 5.38 では非推奨であり、予定通り perl 5.41.3 では削除されましたが、 いくつかの議論の後、デフォルトで復活しました。 =begin original This can be controlled with the C feature which is enabled by default, but is disabled from the 5.41 feature bundle onwards. =end original これは C 機能で制御できます; この機能はデフォルトで有効になっていますが、5.41 以降の機能の束では 無効になっています。 =begin original If you want to disable use within your own code you can explicitly disable the feature: =end original 自身のコード内での使用を無効にしたい場合は、この機能を明示的に 無効にすることができます: no feature "apostrophe_as_package_separator"; =begin original Note that disabling this feature only prevents use of apostrophe as a package separator within code; symbolic references still treat C<'> as C<::> with the feature disabled: =end original この機能を無効にすると、コード内のパッケージ区切り文字として アポストロフィが使用できなくなるだけです; この機能を無効にしても、シンボリック参照は C<'> を C<::> として扱います。 my $symref = "My'Module'Var"; # default features my $x = $My'Module'Var; # fine no feature "apostrophe_as_package_separator"; no strict "refs"; my $y = $$symref; # like $My::Module::Var my $z = $My'Module'Var; # syntax error [L] =head2 Lexical method declaration using C =begin original Like C since Perl version 5.18, C can now be prefixed with the C keyword. This declares a subroutine that has lexical, rather than package visibility. See L for more detail. =end original Perlバージョン 5.18 以降の C と同様に、C の前に C キーワードを付けることができるようになりました。 これは、パッケージの可視性ではなく、レキシカルな可視性を 持つサブルーチンを宣言します。 さらなる詳細については、L を参照してください。 =head2 Lexical method invocation operator C<< ->& >> =begin original Along with the ability to declare methods lexically, this release also permits invoking a lexical subroutine as if it were a method, bypassing the usual name-based method resolution. =end original メソッドをレキシカルに宣言する機能に加えて、このリリースでは、通常の 名前ベースのメソッド解決を迂回して、メソッドであるかのように レキシカルサブルーチンを呼び出すこともできます。 =begin original Combined with lexical method declaration, these two new abilities create the effect of having private methods. =end original レキシカルメソッド宣言と組み合わせることで、これら二つ新しい機能は プライベートメソッドを持つ効果を生み出します。 =head2 Switch and Smart Match operator kept, behind a feature =begin original The "switch" feature and the smartmatch operator, C<~~>, were introduced in v5.10. Their behavior was significantly changed in v5.10.1. When the "experiment" system was added in v5.18.0, switch and smartmatch were retroactively declared experimental. Over the years, proposals to fix or supplement the features have come and gone. =end original "switch" 機能と、スマートマッチング演算子 C<~~> は、v5.10 で導入されました。 これらの振る舞いは v5.10.1 で大きく変更されました。 「実験的」制度が v5.18.0 で追加されたとき、 switch とスマートマッチングは、遡及的に実験的と宣言されました。 長年にわたって、機能を修正または補完する提案が現れては消えていきました。 =begin original They were deprecated in Perl v5.38.0 and scheduled for removal in Perl v5.42.0. After extensive discussion their removal has been indefinitely postponed. Using them no longer produces a deprecation warning. =end original これらは Perl v5.38.0 では非推奨であり、Perl v5.42.0 では削除が 予定されていました。 広範な議論の後、これらの削除は無期限に延期されました。 これらを使っても、非推奨の警告は生成されなくなりました。 =begin original Switch itself still requires the C feature, which is enabled by default for feature bundles from v5.9.5 through to v5.34. Switch remains disabled in feature bundles 5.35 and later, but can be separately enabled: =end original switch 自体は依然として C 機能を必要とします; この機能は、v5.9.5 から v5.34 までの機能の束ではデフォルトで 有効になっています。 switch は 5.35 以降の機能の束では無効のままですが、個別に 有効にすることができます: # no switch here use v5.10; # switch here use v5.36; # no switch here use feature "switch"; # switch here =begin original Smart match now requires the C feature, which is enabled by default and included in all feature bundles up to 5.40. It is disabled for the 5.41 feature bundle and later, but can be separately enabled: =end original スマートマッチングでは、C 機能が必要になりました; この機能はデフォルトで有効になっており、5.40 までのすべての機能の束に 含まれています。 5.41 以降の機能の束では無効になっていますが、個別に有効にすることができます。 # smartmatch here use v5.41; # no smartmatch here use feature "smartmatch"; # smartmatch here [L] =head2 Unicode 16.0 supported =begin original Perl now supports Unicode 16.0 L including the changes introduced in 15.1 L. =end original Perl は、Unicode 15.1 L で 導入された変更を含め、 16.0 L に 対応するようになりました。 =head2 Assigning logical xor C<^^=> operator =begin original Perl 5.40.0 introduced the logical medium-precedence exclusive-or operator C<^^>. It was not noticed at the time that the assigning variant C<^^=> was also missing. This is now added. =end original Perl 5.40.0 では、論理中置排他的論理和演算子 C<^^> が導入されました。 この時点では、代入版 C<^^=> も欠落していることに気づきませんでした。 これが追加されました。 =head1 Security =head2 [CVE-2024-56406] Heap buffer overflow vulnerability with tr// =begin original A heap buffer overflow vulnerability was discovered in Perl. =end original Perl でヒープバッファオーバーフローの脆弱性が発見されました。 =begin original When there are non-ASCII bytes in the left-hand-side of the C operator, C can overflow the destination pointer C. =end original C 演算子の左側に非 ASCII バイトがある場合、C は 宛先ポインタ C をオーバーフローさせることがあります。 $ perl -e '$_ = "\x{FF}" x 1000000; tr/\xFF/\x{100}/;' Segmentation fault (core dumped) =begin original It is believed that this vulnerability can enable Denial of Service or Arbitrary Code Execution attacks on platforms that lack sufficient defenses. =end original この脆弱性により、十分な防御機能を備えていないプラットフォームで サービス拒否攻撃や任意コード実行攻撃が発生する可能性があると 考えられています。 =begin original This problem was discovered by Nathan Mills and assigned [L] by the L. =end original この問題は Nathan Mills によって発見され、 L によって[L] が 割り当てられました。 =begin original The patch to fix this issue (L<87f42aa0e0096e9a346c9672aa3a0bd3bef8c1dd|https://github.com/Perl/perl5/commit/87f42aa0e0096e9a346c9672aa3a0bd3bef8c1dd>) is applicable to all perls that are vulnerable, including those out-of-support. =end original この問題を修正するパッチ(L<87f42aa0e0096e9a346c9672aa3a0bd3bef8c1dd|https://github.com/Perl/perl5/commit/87f42aa0e0096e9a346c9672aa3a0bd3bef8c1dd>) は、サポート対象外のものを含め、 脆弱な全ての Perl に適用できます。 =head2 [CVE-2025-40909] Perl threads have a working directory race condition where file operations may target unintended paths =begin original Perl thread cloning had a working directory race condition where file operations may target unintended paths. Perl 5.42 will no longer chdir to each handle. =end original Perl スレッドのクローン化には、ファイル操作が意図しないパスを ターゲットにする可能性がある作業ディレクトリの競合状態がありました。 Perl 5.42 では、各ハンドルへの chdir がなくなりました。 =begin original This problem was discovered by Vincent Lefèvre via [L] and assigned [L] by the L. =end original この問題は、[L] を介して Vincent Lefèvreによって発見され、 Lによって [L]が 割り当てられました。 =begin original Fixes were provided via [L] and [L]. =end original 修正は、[L] および [L] を通じて 提供されました。 =head1 Incompatible Changes (互換性のない変更) =head2 Removed containing function references for functions without eval =begin original Perl 5.40 reintroduced unconditional references from functions to their containing functions to fix a bug introduced in Perl 5.18 that broke the special behaviour of C in package C which is used by the debugger. =end original Perl 5.40 では、デバッガで使用されるパッケージ C 内の C の 特殊な動作を破壊する Perl 5.18 で導入されたバグを修正するために、 関数からその関数を含む関数への無条件参照が再導入されました。 =begin original In some cases this change led to circular reference chains between closures and other existing references, resulting in memory leaks. =end original 場合によっては、この変更により、クロージャと他の既存の参照との間で 循環参照チェーンが発生し、メモリリークを引き起こしていました。 =begin original This change has been reverted, fixing [L] but re-breaking [L]. =end original この変更は元に戻され、 [L] は修正されましたが、 [L] は再び 壊れました。 =begin original This means the reference loops won't occur, and that lexical variables and functions from enclosing functions may not be visible in the debugger. =end original これは、参照ループが発生しないこと、および囲んでいる関数からの レキシカル変数および関数がデバッガで表示されない可能性があることを 意味します。 =begin original Note that calling C in a function unconditionally causes a function to reference its enclosing functions as it always has. =end original 関数内でC を呼び出すと、常にそうであるように、 無条件にその関数を囲む関数を参照することに注意してください。 =head1 Performance Enhancements (性能改善) =over 4 =item * =begin original Constant-folded strings are now shareable via the Copy-on-Write mechanism. [L] =end original 定数畳み込みされた文字列は、コピーオンライト機構経由で 共有できるようになりました。 [L] =begin original The following code would previously have allocated eleven string buffers, each containing one million "A"s: =end original 次のコードでは、以前はそれぞれ 100 万個の "A" を含む 11 個の文字列バッファが 割り当てられていました: my @scalars; push @scalars, ("A" x 1_000_000) for 0..9; =begin original Now a single buffer is allocated and shared between a CONST OP and the ten scalar elements of C<@scalars>. =end original これは、単一のバッファが割り当てられ、CONST OP と C<@scalars> の 10 個の スカラ要素との間で共有されるようになりました。 =begin original Note that any code using this sort of constant to simulate memory leaks (perhaps in test files) must now permute the string in order to trigger a string copy and the allocation of separate buffers. For example, C<("A" x 1_000_000).time> might be a suitable small change. =end original (おそらくテストファイル内の)この種の定数を使ってメモリーリークを シミュレートするコードは、文字列のコピーと個別のバッファの 割当てを引き起こすために、文字列を変更しなければならなくなったことに 注意してください。 たとえば、C<("A" x 1_000_000).time> は、適切な小さな変更でしょう。 =item * =begin original C now runs at the same speed regardless of the internal representation of its operand, as long as the only characters being translated are ASCII-range, for example C. Previously, if the internal encoding was UTF-8, a slower, more general implementation was used. =end original C は、変換される文字が C のように ASCII 範囲である限り、 オペランドの内部表現に関係なく同じ速度で実行されるようになりました。 以前は、内部エンコーディングが UTF-8 の場合、より低速でより一般的な 実装が使われていました。 =item * =begin original Code that uses the C function from the L module to generate a list of index/value pairs out of an array or list which is then passed into a two-variable C list to unpack those again is now optimised to be more efficient. =end original L モジュールの C 関数を使って、配列またはリストから インデックス/値の組のリストを生成し、それを 2 変数のC リストに 渡して再度展開するコードが、より効率的になるように 最適化されるようになりました。 my @array = (...); foreach my ($idx, $val) (builtin::indexed @array) { ... } Z<> foreach my ($idx, $val) (builtin::indexed LIST...) { ... } =begin original In particular, a temporary list twice the size of the original is no longer generated. Instead, the loop iterates down the original array or list in-place directly, in the same way that C or C would do. =end original 特に、元のサイズの 2 倍の一時的なリストは生成されなくなりました。 代わりに、ループは、C または C が 行うのと同じ方法で、元の配列またはリストを直接反復します。 =item * =begin original The peephole optimizer recognises the following zero-offset C patterns and swaps in a new dedicated operator (C). [L] =end original 覗き穴最適化器は、次のゼロオフセット C パターンを認識し、 新しい専用演算子 (C) に交換します。 [L] substr($x, 0, ...) substr($x, 0, ..., '') =item * =begin original The stringification of integers by L and L, when coming from an C, is now more efficient. [L] =end original L と L による整数の文字列化は、 C から来る場合、より効率的になりました。 [L] =item * =begin original String reversal from a single argument, when the string buffer is not "swiped", is now done in a single pass and is noticeably faster. The extent of the improvement is compiler & hardware dependent. [L] =end original 文字列バッファが「掃き出し」されていない場合、単一の引数からの文字列反転が 単一のパスで行われるようになり、著しく高速になりました。 改善の程度はコンパイラとハードウェアに依存します。 [L] =back =head1 Modules and Pragmata (モジュールとプラグマ) =head2 Updated Modules and Pragmata (更新されたモジュールとプラグマ) =over 4 =item * =begin original L has been upgraded from version 3.02_001 to 3.04. =end original L はバージョン 3.02_001 から 3.04 に更新されました。 =item * =begin original L has been upgraded from version 1.76 to 1.85. =end original L はバージョン 1.76 から 1.85 に更新されました。 =item * =begin original L has been upgraded from version 1.25 to 1.27. =end original L はバージョン 1.25 から 1.27 に更新されました。 =item * =begin original L has been upgraded from version 0.014 to 0.019. =end original L はバージョン 0.014 から 0.019 に更新されました。 =item * =begin original L has been upgraded from version 2.212 to 2.213. =end original L はバージョン 2.212 から 2.213 に更新されました。 =item * =begin original L has been upgraded from version 2.212 to 2.213. =end original L はバージョン 2.212 から 2.213 に更新されました。 =item * =begin original L has been upgraded from version 0.36 to 0.38. =end original L はバージョン 0.36 から 0.38 に更新されました。 =item * =begin original L has been upgraded from version 2.36 to 2.38. =end original L はバージョン 2.36 から 2.38 に更新されました。 =item * =begin original L has been upgraded from version 0.018 to 0.020. =end original L はバージョン 0.018 から 0.020 に更新されました。 =item * =begin original L has been upgraded from version 2.189 to 2.192. =end original L はバージョン 2.189 から 2.192 に更新されました。 =item * =begin original L has been upgraded from version 1.08 to 1.09. =end original L はバージョン 1.08 から 1.09 に更新されました。 =item * =begin original L has been upgraded from version 0.06 to 0.07. =end original L はバージョン 0.06 から 0.07 に更新されました。 =item * =begin original L has been upgraded from version 1.34 to 1.36. =end original L はバージョン 1.34 から 1.36 に更新されました。 =item * =begin original L has been upgraded from version 3.72 to 3.73. =end original L はバージョン 3.72 から 3.73 に更新されました。 =item * =begin original L has been upgraded from version 2.58_01 to 2.59. =end original L はバージョン 2.58_01 から 2.59 に更新されました。 =item * =begin original L has been upgraded from version 1.56 to 1.57. =end original L はバージョン 1.56 から 1.57 に更新されました。 =item * =begin original L has been upgraded from version 0.032 to 0.035. =end original L はバージョン 0.032 から 0.035 に更新されました。 =item * =begin original L has been upgraded from version 5.78 to 5.79. =end original L はバージョン 5.78 から 5.79 に更新されました。 =item * =begin original L has been upgraded from version 0.280240 to 0.280242. =end original L はバージョン 0.280240 から 0.280242 に更新されました。 =item * =begin original L has been upgraded from version 7.70 to 7.76. =end original L はバージョン 7.70 から 7.76 に更新されました。 =item * =begin original L has been upgraded from version 3.51 to 3.57. =end original L はバージョン 3.51 から 3.57 に更新されました。 =item * =begin original L has been upgraded from version 3.51 to 3.57. =end original L はバージョン 3.51 から 3.57 に更新されました。 =item * =begin original L has been upgraded from version 1.18 to 1.20. =end original L はバージョン 1.18 から 1.20 に更新されました。 =item * =begin original L has been upgraded from version 1.89 to 1.97. =end original L はバージョン 1.89 から 1.97 に更新されました。 =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 3.90 to 3.94. =end original L はバージョン 3.90 から 3.94 に更新されました。 =item * =begin original L has been upgraded from version 2.57 to 2.58. =end original L はバージョン 2.57 から 2.58 に更新されました。 =item * =begin original L has been upgraded from version 0.088 to 0.090. =end original L はバージョン 0.088 から 0.090 に更新されました。 =item * =begin original L has been upgraded from version 2.212 to 2.213. =end original L はバージョン 2.212 から 2.213 に更新されました。 =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 1.22 to 1.24. =end original L はバージョン 1.22 から 1.24 に更新されました。 =item * =begin original L has been upgraded from version 1.12 to 1.13. =end original L はバージョン 1.12 から 1.13 に更新されました。 =item * =begin original L has been upgraded from version 2.003002 to 2.005002. =end original L はバージョン 2.003002 から 2.005002 に更新されました。 =item * =begin original L has been upgraded from version 0.5018 to 0.5020. =end original L はバージョン 0.5018 から 0.5020 に更新されました。 =item * =begin original L has been upgraded from version 1.62 to 1.63. =end original L はバージョン 1.62 から 1.63 に更新されました。 =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 5.20240609 to 5.20250702. =end original L はバージョン 5.20240609 から 5.20250702 に更新されました。 =item * =begin original L has been upgraded from version 1.17 to 1.18. =end original L はバージョン 1.17 から 1.18 に更新されました。 =item * =begin original L has been upgraded from version 1.18 to 1.20. =end original L はバージョン 1.18 から 1.20 に更新されました。 =item * =begin original L has been upgraded from version 1.65 to 1.69. =end original L はバージョン 1.65 から 1.69 に更新されました。 =item * =begin original L has been upgraded from version 1.37 to 1.40. =end original L はバージョン 1.37 から 1.40 に更新されました。 =item * =begin original L has been upgraded from version 0.241 to 0.244. =end original L はバージョン 0.241 から 0.244 に更新されました。 =item * =begin original L has been upgraded from version 5.20240218 to 5.20250619. =end original L はバージョン 5.20240218 から 5.20250619 に更新されました。 =item * =begin original L has been upgraded from version 2.03 to 2.05. =end original L はバージョン 2.03 から 2.05 に更新されました。 =item * =begin original L has been upgraded from version 5.01_02 to v6.0.2. =end original L はバージョン 5.01_02 から v6.0.2 に更新されました。 =item * =begin original L has been upgraded from version 2.20 to 2.23. =end original L はバージョン 2.20 から 2.23 に更新されました。 =item * =begin original L has been upgraded from version 0.47 to 0.48. =end original L はバージョン 0.47 から 0.48 に更新されました。 =item * =begin original L has been upgraded from version 2.46 to 2.47. =end original L はバージョン 2.46 から 2.47 に更新されました。 =item * =begin original L has been upgraded from version 1.63 to 1.68_01. =end original L はバージョン 1.63 から 1.68_01 に更新されました。 =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.27 to 1.28. =end original L はバージョン 1.27 から 1.28 に更新されました。 =item * =begin original L has been upgraded from version 2.05 to 2.06. =end original L はバージョン 2.05 から 2.06 に更新されました。 =item * =begin original L has been upgraded from version 3.32 to 3.37. =end original L はバージョン 3.32 から 3.37 に更新されました。 =item * =begin original L has been upgraded from version 1.13 to 1.14. =end original L はバージョン 1.13 から 1.14 に更新されました。 =item * =begin original L has been upgraded from version 0.018 to 0.024. =end original L はバージョン 0.018 から 0.024 に更新されました。 =item * =begin original L has been upgraded from version 3.48 to 3.50. =end original L はバージョン 3.48 から 3.50 に更新されました。 =item * =begin original L has been upgraded from version 1.302199 to 1.302210. =end original L はバージョン 1.302199 から 1.302210 に更新されました。 =item * =begin original L has been upgraded from version 3.05 to 3.06. =end original L はバージョン 3.05 から 3.06 に更新されました。 =item * =begin original L has been upgraded from version 2.40 to 2.43. =end original L はバージョン 2.40 から 2.43 に更新されました。 =item * =begin original L has been upgraded from version 1.69 to 1.70. =end original L はバージョン 1.69 から 1.70 に更新されました。 =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 1.40 to 1.41. =end original L はバージョン 1.40 から 1.41 に更新されました。 =item * =begin original L has been upgraded from version 1.9777 to 1.9778. =end original L はバージョン 1.9777 から 1.9778 に更新されました。 =item * =begin original L has been upgraded from version 1.3401_01 to 1.36. =end original L はバージョン 1.3401_01 から 1.36 に更新されました。 =item * =begin original L has been upgraded from version 0.78 to 0.81. =end original L はバージョン 0.78 から 0.81 に更新されました。 =item * =begin original L has been upgraded from version 1.25 to 1.27. =end original L はバージョン 1.25 から 1.27 に更新されました。 =item * =begin original L has been upgraded from version 0.9930 to 0.9933. =end original L はバージョン 0.9930 から 0.9933 に更新されました。 =item * =begin original L has been upgraded from version 1.13 to 1.15. =end original L はバージョン 1.13 から 1.15 に更新されました。 =item * =begin original L has been upgraded from version 1.69 to 1.74. =end original L はバージョン 1.69 から 1.74 に更新されました。 =item * =begin original L has been upgraded from version 0.59 to 0.59_01. =end original L はバージョン 0.59 から 0.59_01 に更新されました。 =item * =begin original L has been upgraded from version 1.36 to 1.43. =end original L はバージョン 1.36 から 1.43 に更新されました。 =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, open an issue at L. =end original 私たちはこの文書で挙げられた変更を反映するように文書を更新しようとしています。 もし抜けている物を発見したら、 L でイシューを開いてください。 =begin original Additionally, the following selected changes have been made: =end original それに加えて、以下のような変更が行われました。 =head3 L =over 4 =item * =begin original Combined the documentation for several groups of related functions into single entries. =end original 関連する関数のいくつかのグループの文書を一つのエントリにまとめました。 =item * =begin original All forms of C are now documented together. =end original C のすべての形式が一緒に文書化されました。 =item * =begin original C is now documented with C and additional notes added. The long C forms are now listed when available. =end original C は、C と共に文書化され、 追加の注意事項が追加されました。 長い C 形式は、利用可能な場合に一覧化されるようになりました。 =back =head3 L =over 4 =item * =begin original Binary and octal floating-point constants (such as C<012.345p-2> and C<0b101.11p-1>) are now documented. This feature was first introduced in perl 5.22.0 together with hexadecimal floating-point constants and had a few bug fixes in perl 5.28.0, but it was never formally documented. [L] =end original 2 進数および 8 進数の浮動小数点定数 (C<012.345p-2> や C<0b101.11p-1> など) が 文書化されました。 この機能は、最初に perl 5.22.0 で 16 進数の浮動小数点定数とともに導入され、 perl 5.28.0 でいくつかのバグ修正が行われましたが、正式に 文書化されることはありませんでした。 [L] =back =head3 L =over 4 =item * =begin original Clarified the description of C and C in relation to built-in types and class names. =end original 組み込み型とクラス名に関連する C と C の記述を明確化しました。 =item * =begin original Clarified that perl C is stable (and has been since v5.8.0). =end original perl C が(v5.8.0 以降)安定していることを明確にしました。 =item * =begin original The recommended alternatives to the C function were updated to modern modules recommended by the L. [L] =end original C 関数の推奨される代替関数は、 L によって推奨される モダンなモジュールに更新されました。 [L] =back =head3 L =over 4 =item * =begin original The list of Steering Council and Core Team members have been updated, following the conclusion of the latest election on 2024-07-17. =end original 2024-07-17 の最新の選挙の終了を受けて、運営委員会とコアチームのメンバーの リストが更新されました。 =back =head3 L =over 4 =item * =begin original Added some description of "real" Cs compared to "fake" Cs. =end original 「本物の」C と「偽の」C の比較に関する説明を追加しました。 =item * =begin original Documentation was updated to reflect that mixing C, C, and C vs C, C, and C are not allowed, and mixing pointers between the 2 classes of APIs is not allowed. Updates made in L and L. =end original 文書が更新され、C, C, C と C, C, C の混在は許されず、二つのグループの API 間でのポインタの混在は 許されないことが反映されました。 更新は L と L に対して行われました。 =item * =begin original Additional caveats have been added to the description of C. =end original C の説明に追加の警告が追加されました。 =back =head3 L =over 4 =item * =begin original Portions of perlop are supposed to be ordered so that all the operators wth the same precedence are in a single section, and the sections are ordered so that the highest precedence operators appear first. This ordering has now been restored. Other reorganization was done to improve clarity, with more basic operations described before ones that depend on them. =end original perlop の一部は、同じ優先順位を持つすべての演算子が一つのの節内に あるように順序付けられ、セクションは最も優先順位の高い演算子が 最初に表示されるように順序付けられることを想定しています。 この順序は復元されました。 その他の再編成は、明確性を向上させるために行われ、より基本的な操作は、 それらに依存する操作の前に説明されるようになりました。 =item * =begin original The documentation for here-docs has been cleaned up and reorganized. Indented here-docs were formerly documented separately, now the two types have interwoven documentation which is more compact, and easier to understand. =end original ヒヤドキュメントの文書は整理され、再編成されました。 インデントされたヒヤドキュメントは以前は別々に文書化されていましたが、 現在では二種類の文書が織り交ぜられており、よりコンパクトで 理解しやすくなっています。 =item * =begin original The documentation of the C operator has been expanded. =end original C 演算子の文書が拡張されました。 =item * =begin original Outdated advice about using relational string operators in UTF-8 locales has been removed. Use L for the best results, but these operators will give adequate results on many platforms. =end original UTF-8 ロケールでの関係文字列演算子の使用に関する 古いアドバイスは削除されました。 最良の結果を得るには L を使いますが、これらの演算子は 多くのプラットフォームで適切な結果を提供します。 =item * =begin original Normalized alignment of verbatim sections, fixing how they are displayed by some Pod viewers that strip indentation. =end original そのままの節のアライメントが正規化され、インデントを削除する一部の Pod ビューワでの表示方法が修正されました。 =back =head3 L =over 4 =item * =begin original Entries for C<$#> and C<$*> have been amended to note that use of them result in a compilation error, not a warning. =end original C<$#> および C<$*> のエントリについて、これらを使うと警告ではなく コンパイルエラーが発生するということを注意するように修正されました。 =back =head1 Diagnostics (診断メッセージ) =begin original The following additions or changes have been made to diagnostic output, including warnings and fatal error messages. For the complete list of diagnostic messages, see L. =end original 次のような追加と変更が、警告や致命的エラーメッセージを含む診断出力に 行われました。 診断メッセージの完全な一覧については、L を参照してください。 =head2 New Diagnostics (新しい警告メッセージ) =head3 New Errors (新しいエラー) =over 4 =item * L =begin original (F) This pragma forbids non-ASCII characters within its scope. =end original (F) このプラグマは、そのスコープ内で非 ASCII 文字を禁止します。 =item * L =begin original (F) The subroutine indicated hasn't been defined, or if it was, it has since been undefined. =end original (F) 示されたサブルーチンが定義されていないか、以前定義されていたとしても、 その後未定義になりました。 =begin original This error could also indicate a mistyped package separator, when a single colon was typed instead of two colons. For example, C would be parsed as the label C followed by an unqualified function name: C. [L] =end original このエラーは、二つのコロンではなく一つのコロンが入力された場合に、 パッケージ区切り文字の入力ミスを示すこともあります。 たとえば、C は、ラベル C の後に修飾されていない関数名が 続くものとして解析されます: C。 [L] =back =head3 New Warnings (新しい警告) =over 4 =item * L<__CLASS__ is experimental|perldiag/"__CLASS__ is experimental"> =begin original (S experimental::class) This warning is emitted if you use the C<__CLASS__> keyword of C. This keyword is currently experimental and its behaviour may change in future releases of Perl. =end original (S experimental::class) この警告は、C の C<__CLASS__> キーワードを使った場合に発生します。 このキーワードは現在実験的なものであり、Perl の将来のリリースで動作が 変更される可能性があります。 =item * L<%s() attempted on handle %s opened with open()|perldiag/"%s() attempted on handle %s opened with open()"> =begin original (W io) You called readdir(), telldir(), seekdir(), rewinddir() or closedir() on a handle that was opened with open(). If you want to use these functions to traverse the contents of a directory, you need to open the handle with opendir(). =end original (W io) open() で開いたハンドルに対して readdir(), telldir(), seekdir(), rewinddir(), closedir() を呼び出しました。 ディレクトリの内容を走査するためにこれらの関数を使いたい場合、 opendir() でハンドルを開く必要があります。 [L] =item * L =begin original (W precedence) You wrote something like =end original (W precedence) 次のようなものを書きました: !$x < $y # parsed as: (!$x) < $y !$x eq $y # parsed as: (!$x) eq $y !$x =~ /regex/ # parsed as: (!$x) =~ /regex/ !$obj isa Some::Class # parsed as: (!$obj) isa Some::Class =begin original but because C has higher precedence than comparison operators, C<=~>, and C, this is interpreted as comparing/matching the logical negation of the first operand, instead of negating the result of the comparison/match. =end original しかし、C は比較演算子 C<=~> および C よりも優先順位が高いため、 これは比較/マッチングの結果を否定するのではなく、最初のオペランドの論理否定を 比較/マッチングするものとして解釈されます。 =begin original To disambiguate, either use a negated comparison/binding operator: =end original あいまいさをなくすには、否定された比較/束縛演算子を使うか: $x >= $y $x ne $y $x !~ /regex/ =begin original ... or parentheses: =end original かっこか: !($x < $y) !($x eq $y) !($x =~ /regex/) !($obj isa Some::Class) =begin original ... or the low-precedence C operator: =end original 優先順位の低い C 演算子を使います: not $x < $y not $x eq $y not $x =~ /regex/ not $obj isa Some::Class =begin original (If you did mean to compare the boolean result of negating the first operand, parenthesize as C<< (!$x) < $y >>, C<< (!$x) eq $y >>, etc.) =end original (最初のオペランドを否定した真偽値の結果を比較することを意味していた場合は、 C<< (!$x) < $y >>, C<< (!$x) eq $y >> などのようにかっこで囲みます。) =begin original Note: this warning does not trigger for code like C, i.e. where double negation (C) is used as a convert-to-boolean operator. =end original 注: この警告は、C のようなコード、つまり、二重否定 (C) が 真偽値への変換演算子として使われてコードでは引き起こされません。 =back =head2 Changes to Existing Diagnostics (既存の診断メッセージの変更) =over 4 =item * L<%s() attempted on invalid dirhandle %s|perldiag/"%s() attempted on invalid dirhandle %s"> =begin original This was consolidated from separate messages for readdir(), telldir(), seekdir(), rewinddir() and closedir() as part of refactoring for [L]. =end original これは、[L] の リファクタリングの一部として、readdir(), telldir(), seekdir(), rewinddir(), losedir() の個別のメッセージから統合されました。 =item * L =begin original This warning now triggers for use of a chained comparison like C<< 0 < $x < 1 >>. [L] =end original この警告は、C<< 0 < $x < 1 >> のような連鎖比較の使用で 引き起こされるようになりました。 [L] =item * L =begin original Prevent this warning when accessing a function parameter in C<@_> that is an lvalue reference to an untied hash element where the key was undefined. This warning is still produced at the point of call. [L] =end original キーが未定義の tie されていないハッシュ要素への左辺値参照である C<@_> の関数引数にアクセスするときに、 この警告が発生しないようになりました。 この警告は、呼び出しの時点では未だに生成されます。 [L] =back =head1 Utility Changes =head2 F =over 4 =item * =begin original Separate installation (without overwriting installed modules) is now the default. =end original 個別インストール(インストールされたモジュールを上書きしない)が デフォルトになりました。 =item * =begin original Documentation is significantly enhanced. =end original 文書が大幅に強化されました。 =back =head1 Configuration and Compilation (設定とコンパイル) =over 4 =item * =begin original Fix compilation on platforms (e.g. "Gentoo Prefix") with only a C locale [L] Bug first reported downstream L =end original C ロケールのみを使用するプラットフォーム(例: "Gentoo Prefix") での コンパイルを修正しました [L]。 バグは最初にダウンストリーム L で報告されました。 =item * =begin original The (mostly undocumented) configuration macro C has been removed. When enabled (e.g. with C<./Configure -A ccflags=-DPERL_STRICT_CR>), it would make the perl parser throw a fatal error when it encountered a CR (carriage return) character in source files. The default (and now only) behavior of the perl parser is to strip CRs paired with newline characters and otherwise treat them as whitespace. =end original (ほとんど文書化されていない) 設定マクロ C が削除されました。 これを (たとえばC<./Configure -A ccflags=-DPERL_STRICT_CR>で) 有効にすると、 ソースファイルで CR(キャリッジリターン)文字が検出されたときに、 perl パーサが致命的なエラーを投げるようになります。 perl パーサのデフォルトの(そして今では唯一の)動作は、改行文字と対になった CR を取り除き、それ以外の場合は空白として扱うことです。 =begin original (C was originally introduced in perl 5.005 to optionally restore backward compatibility with perl 5.004, which had made CR in source files an error. Before that, CR was accepted, but retained literally in quoted multi-line constructs such as here-documents, even at the end of a line.) =end original (C は、オプションでソースファイルの CR がエラーになった perl 5.004 との下位互換性を復元するために perl 5.005 で導入されました。 それ以前は、CR は受け入れられていましたが、ヒヤドキュメントのような 引用された複数行の構文では、行の末尾であっても文字通り保持されていました。) =item * =begin original Similarly, the (even less documented) configuration macro C has been removed. When enabled, it would install a default source filter to strip carriage returns from source code before the parser proper got to see it. =end original 同様に、(さらに文書化されていない) 設定マクロ C が 削除されました。 有効にすると、デフォルトのソースフィルタがインストールされ、 パーサがソースコードを見る前にソースコードからキャリッジリターンを 取り除きます。 =back =head1 Testing (テスト) =begin original Tests were added and changed to reflect the other additions and changes in this release. Furthermore, these significant changes were made: =end original このリリースのその他の追加と変更を反映してテストが追加、変更されました。 さらに、主に以下のような変更が行われました: =over 4 =item * =begin original A new F test script was added as a place for TODO tests for known unfixed bugs. Patches are welcome to add to this file. =end original 既知の修正されていないバグに対する TODO テストの場所として、 新しい F テストスクリプトが追加されました。 このファイルに追加するパッチを歓迎します。 =item * =begin original Added testing of the perl headers against the C++ compiler corresponding to the C compiler perl is being built with. [L] =end original perl をビルドしている C コンパイラに対応する C++ コンパイラに対する perl ヘッダのテストが追加されました。 [L] =back =head1 Platform Support (プラットフォーム対応) =head2 Platform-Specific Notes (プラットフォーム固有の注意) =over 4 =item arm64 Darwin =begin original Fix arm64 darwin hints when using use64bitall with Configure [L] =end original Configure で use64bitall を使用するときの arm64 darwin のヒントを 修正しました。 [L] =item Android =begin original Changes to F for Android [L] related to [L]. =end original [L] に関連して Android の F [L] を変更しました。 =item Cygwin =begin original F: fix several silly/terrible C errors. [L] =end original F: いくつかのばかげた/ひどい C エラーを修正しました。 [L] =begin original Supply an explicit base address for C that cannot conflict with those generated by C<--enable-auto-image-base>. [L][L] =end original C に対して、C<--enable-auto-image-base> によって生成された ベースアドレスと競合しない明示的なベースアドレスを指定しました。 [L] [L] =item MacOS (Darwin) =begin original Collation of strings using locales on MacOS 15 (Darwin 24) and up has been turned off due to a failed assertion in its libc. =end original MacOS 15 (Darwin 24) 以降でロケールを使用した文字列の照合は、 libc でのアサーションの失敗によりオフになっています。 =begin original If earlier versions are also experiencing issues (such as failures in F), you can explicitly disable locale collation by adding the C<-Accflags=-DNO_LOCALE_COLLATE> option to your invocation of C<./Configure>, or just C<-DNO_LOCALE_COLLATE> to the C and C variables in F. =end original 以前のバージョンでも(F での失敗など)問題が発生している場合は、 C<./Configure> の起動に C<-Accflags=-DNO_LOCALE_COLLATE> オプションを 追加するか、F の C および C 変数に C<-DNO_LOCALE_COLLATE> を追加することで、ロケール照合を明示的に 無効にすることができます。 =back =head1 Internal Changes (内部の変更) =over 4 =item * =begin original The L> function is introduced. This is an enhanced version of L>, which is retained for backwards compatibility. Both are to call L when you have the year, month, hour, etc. The new function handles UTF8ness for you, and allows you to specify if you want the possibility of daylight savings time to be considered. C never considers DST. =end original L> 関数が導入されました。 これは、下位互換性のために保持されている L> の 拡張版です。 どちらも、年、月、時などがある場合に L を呼び出します。 新しい関数は UTF-8 を処理し、夏時間の可能性を考慮するかどうかを指定できます。 C は DST を考慮しません。 =item * =begin original The C, C, and C functions are no longer experimental. =end original C, C, C 関数は 実験的なものではなくなりました。 =item * =begin original Calls to L with the C flag set also ensure the SV parameters constructed from the C parameter are released before C returns. Previously they were released on the next L. [L] =end original C フラグが設定された L を 呼び出すと、C 引数から構築された SV 引数が、 C が返る前に解放されます。 以前は、次の L で解放されていました。 [L] =item * =begin original When built with the C<-DDEBUGGING> compile option, perl API functions that take pointers to distinct types of SVs (AVs, HVs or CVs) will check the C of the passed values to ensure they are valid. Additionally, internal code within core functions that attempts to extract AVs, HVs or CVs from reference values passed in will also perform such checks. =end original C<-DDEBUGGING> コンパイルオプションを使ってビルドされた場合、 異なるタイプの SV(AV, HV, CV) へのポインタを取る perl API 関数は、 渡された値の C をチェックして、それらが有効であることを 確認します。 さらに、渡された参照値から AV, HV, CV を抽出しようとする コア関数内の内部コードも、このようなチェックを実行します。 =begin original While this has been entirely tested by normal Perl CI testing, there may still be some corner-cases where these constraints are violated in otherwise-valid calls. These may require further investigation if they are found, and specific code to be adjusted to account for it. =end original これは通常の Perl CI テストによって完全にテストされていますが、 それ以外の有効な呼び出しでこれらの制約に違反するコーナーケースが まだいくつかある可能性があります。 これらが見つかった場合は、さらに調査し、それを考慮して特定のコードを 調整する必要があります。 =item * =begin original The C function has been expanded to include additional information about the recent C and C ops, as well as for C and C which had not been done previously. =end original C 関数が拡張され、最近の C および C op に関する追加情報と、これまで行われていなかった C および Cに関する追加情報が 含まれるようになりました。 =item * =begin original C now also has the facility to print extra debugging information about custom operators, if those operators register a helper function via the new C element of the C structure. For more information, see the relevant additions to L. =end original C には、カスタム演算子が C 構造体の新しい C 要素経由でヘルパー関数を登録する場合に、カスタム演算子に 関する追加のデバッグ情報を出力する機能も追加されました。 詳細については、L への 関連する追加を参照してください。 =item * =begin original New API functions are introduced to convert strings encoded in UTF-8 to their ordinal code point equivalent. These are safe to use by default, and generally more convenient to use than the existing ones. =end original UTF-8 でエンコードされた文字列を対応する序数符号位置に変換する新しい API 関数が導入されました。 これらはデフォルトで安全に使用でき、一般的に既存のものよりも便利です。 =begin original L> and L> replace L> (which is retained for backwards compatibility), but you should convert to use the new forms, as likely you aren't using the old one safely. =end original L> および L> は、L> (下位互換性のために保持されています) を 置き換えますが、古い形式を安全に使用していない可能性があるため、 新しい形式を使うように変換するべきです。 =begin original To convert in the opposite direction, you can now use L>. This is not a new function, but a new synonym for L>. It is added so you don't have to learn two sets of names. =end original 逆方向に変換するには、L> を使えるようになりました。 これは新しい関数ではなく、L> の新しい同義語です。 二つの名前のセットを学習する必要がないように追加されました。 =begin original There are also two new functions, L> and L> which do the same thing except when the input string represents a code point that Unicode doesn't accept as legal for interchange, using either the strict original definition (C), or the looser one given by L (C). When the input string represents one of the restricted code points, these functions return the Unicode C instead. =end original また、L> と L> という二つの新しい関数もあります; これらの関数は同じことを行いますが、入力文字列が、厳密な元の定義 (C) または L によって与えられた、より緩やかな定義 (C) のいずれかを使って、Unicode が交換に対して合法として 受け入れない符号位置を表す場合は異なります。 入力文字列が制限された符号位置の一つを表す場合、これらの関数は代わりに Unicode C を返します。 =begin original Also L> is a synonym for C, for use when you want to emphasize that the entire range of Perl extended UTF-8 is acceptable. =end original また、L> は C の同義語であり、 Perl 拡張 UTF-8 の全範囲が受け入れられることを強調したい場合に使います。 =begin original There are also replacement functions for the three more specialized conversion functions that you are unlikely to need to use. Again, the old forms are kept for backwards compatibility, but you should convert to use the new forms. =end original また、おそらく使う必要のない三つの特殊な変換関数に代わる関数もあります。 ここでも、下位互換性のために古い形式が保持されていますが、 新しい形式を使うように変換するべきです。 =begin original L> replaces L>. =end original L> は、L> を 置き換えます。 =begin original L> replaces L>. =end original L> は、L> を 置き換えます。 =begin original L> replaces L>. =end original L> は、L> を 置き換えます。 =begin original Also added are the inverse functions L> and L>, which are synonyms for the existing functions, L> and L> respectively. These are provided only so you don't have to learn two sets of names. =end original また、逆関数 L> および L> も追加されています; これらは、それぞれ既存の関数 L> および L> の同義語です。 これらは、二つの名前のセットを学ぶ必要がないようにするためだけに 提供されています。 =item * =begin original Three new API functions are introduced to convert strings encoded in UTF-8 to native bytes format (if possible). These are easier to use than the existing ones, and they avoid unnecessary memory allocations. The functions are L> which is used when it is ok for the input string to be overwritten with the converted result; and L> and L> when the original string must be preserved intact. C returns the result in a temporary using L/C that will automatically be destroyed. With C, you are responsible for freeing the newly allocated memory that is returned if the conversion is successful. =end original UTF-8 でエンコードされた文字列を(可能であれば)ネイティブな バイト形式に変換するために、三つの新しい API 関数が導入されました。 これらは既存の関数よりも使いやすく、不要なメモリ割り当てを回避します。 関数は、変換結果で入力文字列を上書きしても問題がない場合に使われる L> と、 元の文字列をそのまま保持する必要がある場合に使われる L> および L> です。 C は、自動的に破棄される L/C を使って結果を一時的に返します。 C では、変換が成功した場合に返される、新しく 割り当てられたメモリを解放する必要があります。 =begin original The latter two functions are designed to replace L> which creates memory unnecessarily, or unnecessarily large. =end original 後者の二つの関数は、メモリを不必要に使ったり、不必要に大きく使ったりする L> を置き換えるために設計されています。 =item * =begin original New API functions L|perlapi/valid_identifier_pve>, L|perlapi/valid_identifier_pvn> and L|perlapi/valid_identifier_sv> have been added, which test if a string would be considered by Perl to be a valid identifier name. =end original 新しいAPI関数 L|perlapi/valid_identifier_pve>, L|perlapi/valid_identifier_pvn>, L|perlapi/valid_identifier_sv> が追加されました; これらの関数は、文字列が Perl によって有効な識別子名と 見なされるかどうかをテストします。 =item * =begin original When assigning from an SVt_IV into a SVt_NV (or vice versa), providing that both are "bodyless" types, Perl_sv_setsv_flags will now just change the destination type to match the source type. Previously, an SVt_IV would have been upgraded to a SVt_PVNV to store an NV, and an SVt_NV would have been upgraded to a SVt_PVIV to store an IV. This change prevents the need to allocate - and later free - the relevant body struct. =end original SVt_IV から SVt_NV (またはその逆)に割り当てる場合、両方が 「ボディレス」型であれば、Perl_sv_setsv_flags は宛先型を ソース型に一致するように変更します。 以前は、SVt_IV は NV を格納するために SVt_PVNV に昇格され、 SVt_NV は IV を格納するために SVt_PVIV に昇格されていました。 この変更により、関連するボディ構造体を割り当て、 後で解放する必要がなくなりました。 =item * =begin original Two new API functions are introduced to convert strings encoded in native bytes format to UTF-8. These return the string unchanged if its UTF-8 representation is the same as the original. Otherwise, new memory is allocated to contain the converted string. This is in contrast to the existing L> which always allocates new memory. The new functions are L> and L>. L> arranges for the new memory to automatically be freed. With C, you are responsible for freeing any newly allocated memory. =end original ネイティブバイト形式でエンコードされた文字列を UTF-8 に変換するために、 二つの新しい API 関数が導入されました。 これらの関数は、UTF-8 表現が元の文字列と同じ場合は、 文字列を変更せずに返します。 それ以外の場合は、変換された文字列を含む新しいメモリが割り当てられます。 これは、常に新しいメモリを割り当てる既存の L> とは対照的です。 新しい関数は、L> およびL> です。 L> は、新しいメモリが 自動的に解放されるように調整します。 C は、新しく割り当てられたメモリを 解放する必要があります。 =item * =begin original The way that subroutine signatures are parsed by the parser grammar has been changed. =end original サブルーチンシグネチャをパーサ文法で構文解析する方法が変更されました。 =begin original Previously, when parsing individual signature parameters, the parser would accumulate an C optree fragment for each parameter on the parser stack, collecting them in an C sequence, before finally building the complete argument handling optree itself, in a large action block defined directly in F. =end original 以前は、個々のシグネチャ引数をパースする場合、パーサは、F で 直接定義された大きなアクションブロック内に完全な引数処理 op 木自体を 最終的に構築する前に、パーサスタック上の各引数に対して C op 木フラグメントを蓄積し、それらを C シーケンスで収集していました。 =begin original In the new approach, all the optree generation is handled by newly-defined functions in F which are called by the action blocks in the parser. These do not keep state on the parser stack, but instead in a dedicated memory structure referenced by the main C structure. This is intended to be largely opaque to other code, and accessed only via the new functions. =end original 新しい手法では、すべての op 木生成は、パーサ内のアクションブロックによって 呼び出される F 内の新しく定義された関数によって処理されます。 これらはパーサスタック上で状態を保持するのではなく、メインの C 構造体によって参照される専用のメモリ構造内に保持されます。 これは、他のコードからほとんど不透明であり、新しい関数経由でのみ アクセスされることを意図しています。 =begin original This new arrangement is intended to allow more flexible code generation and additional features to be developed in the future. =end original この新しい配置は、より柔軟なコード生成と将来開発される追加機能を 可能にすることを目的としています。 =item * =begin original Three new API functions have been added to interact with the regexp global match position stored in an SV. These are C, C and C. Using these API functions avoids XS modules needing to know about or interact directly with the way this position is currently stored, which involves the C magic type. =end original SV に保存された正規表現のグローバルなマッチング位置と相互作用するために、 三つの新しい API 関数が追加されました。 これらは、C, C, C です。 これらの API 関数を使うと、XSモジュールが、 C マジカル型に関連する、この位置が現在保存されている 方法を認識したり、直接対話したりする必要がなくなります。 =item * =begin original New C API macro =end original 新しい C API マクロ =begin original A new API macro has been added, which is used to obtain the second string buffer out of a "vstring" SV, in a manner similar to the C macro which obtains the regular string buffer out of a regular SV. =end original 通常の文字列バッファを通常の SV から取得する C マクロと同様の方法で、 "vstring" SV から 2 番目の文字列バッファを取得するために使われる 新しい API マクロが追加されました。 STRLEN len; const char *vstr_pv = SvVSTRING(sv, vstr_len); =begin original See L>. =end original L> を参照してください。 =back =head1 Selected Bug Fixes (バグ修正の抜粋) =over 4 =item * =begin original Fix null pointer dereference in S_SvREFCNT_dec [L]. =end original S_SvREFCNT_dec のヌルポインタの逆参照を修正しました [L]。 =item * =begin original Fix feature 'class' Segmentation fault in DESTROY [L]. =end original DESTROY の feature 'class' セグメンテーションフォルトを修正しました [L]。 =item * =begin original C now returns real booleans (as its documentation describes), not integers. This means the result of a failed C now stringifies to C<''>, not C<'0'>. =end original C は、整数ではなく(文書で説明されているように)本当の真偽値を 返すようになりました。 これは、失敗した C の結果が、C<'0'> ではなく C<''> に 文字列化されることを意味します。 [L] =item * =begin original Compound assignment operators return lvalues that can be further modified: =end original 複合代入演算子は、さらに変更可能な左辺値を返します。 ($x &= $y) += $z; # Equivalent to: # $x &= $y; # $x += $z; =begin original However, the separate numeric/string bitwise operators provided by L feature|feature/The 'bitwise' feature>, C<< &= ^= |= &.= ^.= |.= >>, did not return such lvalues: =end original ただし、L 機能|feature/The 'bitwise' feature> で提供されている 独立した数値/文字列ビット単位演算子 C<< &= ^= |= &.= ^.= |.= >> は、 このような左辺値を返していませんでした: use feature qw(bitwise); ($x &= $y) += $z; # Used to die: # Can't modify numeric bitwise and (&) in addition (+) at ... =begin original This has been corrected. [L] =end original これは修正されました。 [L] =item * =begin original Starting in v5.39.8, L> would crash or produce odd errors (such as C) when given a format string that wasn't actually a string, but a number, C, or an object (even one with overloaded string conversion). =end original v5.39.8 以降、L> では、フォーマット文字列が実際には 文字列ではなく、数値、C、またはオブジェクト(オーバーロードされた 文字列変換を持つものであっても)が与えられた場合、クラッシュしたり、 奇妙なエラー (C など)が 発生したりしていました。 =begin original Now C stringifies its first argument, as before. [L] =end original C は以前と同様に最初の引数を文字列化するようになりました。 [L] =begin original Also, fix C [L]. =end original また、C も修正されました [L]。 =item * =begin original C and C now SvPV_force() the supplied SV unless it is read only. This will remove CoW from the SV and prevents code that writes through the generated pointer from modifying the value of other SVs that happen the share the same CoWed string buffer. =end original C と C は、読み込み専用でない限り、 指定された SV を SvPV_force() するようになりました。 これにより、SV から CoW が削除され、生成されたポインタを介して 書き込むコードが、同じ CoW 文字列バッファを共有する他の SV の値を 変更してしまうことを防ぎます。 =begin original Note: this does not make C safe, if the SV is magical then any writes to the buffer will likely be discarded on the next read. [L] =end original 注意: これは C を安全にはしません; SV がマジカルな場合、バッファへの書き込みは次の読み取りで 破棄される可能性があります。 [L] =item * =begin original Enforce C for bareword file handles that have strictness removed because they are used in open() with a "dup" mode, such as in C<< open my $fh, ">&", THISHANDLE >>. [L] =end original C<< open my $fh, ">&", THISHANDLE >> のように、"dup" モードで open() で使われているために strict 性が削除された裸の単語の ファイルハンドルに対して、C を 強制します。 [L] =item * =begin original Using C to tail call, or using the call_sv() and related APIs to call, any of trim(), refaddr(), reftype(), ceil(), floor() or stringify() in the C package would crash or assert due to a C handling bug. [L] =end original C を使って末尾呼び出しを行うか、呼び出しに call_sv() および関連する API を使うと、C パッケージの trim(), refaddr(), reftype(), ceil(), floor(), stringify() のいずれかが、C 処理のバグにより クラッシュまたはアサートしていました。 [L] =item * =begin original Fix sv_gets() to accept a C append offset instead of C. This prevents integer overflows when appending to a large C for C aka C and C. L =end original C の代わりに C 追加オフセットを受け入れるように sv_gets() を修正しました。 これにより、C またの名を C および C のために大きな C に追加するときに整数オーバーフローを 防ぐことができます。 L =item * =begin original Fixed an issue where C failed to correctly identify certain invalid UTF-8 sequences as invalid. Specifically, sequences that start with continuation bytes or unassigned bytes could cause unexpected behavior or a panic. This fix ensures that such invalid sequences are now properly detected and handled. This correction also resolves related issues in modules that handle UTF-8 processing, such as C. =end original C が特定の無効な UTF-8 シーケンスを無効として 正しく識別できない問題が修正されました。 特に、継続バイトまたは割り当てられていないバイトで始まる シーケンスは、予期しない動作またはパニックを引き起こす可能性がありました。 この修正により、このような無効なシーケンスが適切に検出され、 処理されるようになります。 この修正により、C などの UTF-8 処理を処理するモジュールの 関連する問題も解決されます。 =item * =begin original The perl parser would erroneously parse some POD directives as if they were C<=cut>. Some other POD directives whose names start with I, prematurely terminating an embedded POD section. The following cases were affected: I followed by a digit (e.g. C<=cut2studio>), I followed by an underscore (e.g. C<=cut_grass>), and in string C, any identifier starting with I (e.g. C<=cute>). [L] =end original perl パーサは、一部の POD 指示子を C<=cut> であるかのように誤って パースしていました。 名前が I で始まる他のいくつかの POD 指示子は、埋め込まれた POD 節を途中で終了させていました。 次のケースが影響を受けました: I の後に数字が続く(例: C<=cut2studio>)、 I の後にアンダースコアが続く(例: C<=cut_grass>)、 文字列 C では、I で始まる任意の識別子(例: C<=cute>)。 [L] =item * =begin original Builds with C<-msse> and quadmath on 32-bit x86 systems would crash with a misaligned access early in the build. [L] =end original 32 ビット x86 システムで C<-msse> と quadmath を使ったビルドを行うと、 ビルドの初期段階でアライメントがずれたアクセスによりクラッシュします。 [L] =item * =begin original On threaded builds on POSIX-like systems, if the perl signal handler receives a signal, we now resend the signal to the main perl thread. Previously this would crash. [L] =end original POSIX ライクなシステムのスレッド化されたビルドでは、perl シグナルハンドラが シグナルを受信した場合、メインの perl スレッドにシグナルを 再送するようになりました。 以前はクラッシュしていました。 [L] =item * =begin original Declaring a lexically scoped array or hash using C within a subroutine and then immediately returning no longer triggers a "Bizarre copy of HASH/ARRAY in subroutine exit" error. [L] =end original サブルーチン内で C を使ってレキシカルスコープの配列または ハッシュを宣言し、直後に返っても、 "Bizarre copy of HASH/ARRAY in subroutine exit" エラーが 発生しなくなりました。 [L] =item * =begin original C didn't properly clear C which could result in out of date cached numeric versions of the value being used on a second evaluation. Properly clear any cached values. [L] =end original C は C を適切にクリアしていませんでした; これにより、2 番目の評価で使われた値のキャッシュされた 数値版が古くなる可能性がありました。 キャッシュされた値を適切にクリアするようになりました。 [L] =item * =begin original L and L are no longer limited to 31-bit values and can use all the available bits on a platform for their POS and SIZE arguments. [L] =end original L と L はもはや 31 ビット値に 制限されなくなり、POS 引数と SIZE 引数にプラットフォーム上で使用可能な すべてのビットを使えるようになりました。 [L] =item * =begin original L is now better behaved if VAR is not a plain string. If VAR is a tied variable, it calls C once; previously, it would also call C, but without using the result. If VAR is a reference, the referenced entity has its refcount properly decremented when VAR is turned into a string; previously, it would leak memory. [L] =end original VAR がプレーンな文字列でない場合の L の動作が改善されました。 VAR が tie された変数の場合、C を 1 回呼び出します; 以前は、結果を使わない C も呼び出していました。 VAR がリファレンスの場合、VAR が文字列に変換されると、参照されるエンティティの 参照カウントが適切に減少します; 以前は、メモリリークしていました。 [L] =item * =begin original The C<$SIG{__DIE__}> and C<$SIG{__WARN__}> handlers can no longer be invoked recursively, either deliberately or by accident, as described in L. That is, when an exception (or warning) triggers a call to a C<$SIG{__DIE__}> (or C<$SIG{__WARN__}>) handler, further exceptions (or warnings) are processed directly, ignoring C<%SIG> until the original C<$SIG{__DIE__}> (or C<$SIG{__WARN__}>) handler call returns. [L], [L], [L] =end original L で説明されているように、C<$SIG{__DIE__}> および C<$SIG{__WARN__}> ハンドラは、意図的であるか偶発的であるかにかかわらず、 もはや再帰的に呼び出すことができなくなりました。 つまり、例外(または警告)によって C<$SIG{__DIE__}> (または C<$SIG{__WARN__}>)ハンドラの呼び出しが引き起こされると、 元の C<$SIG{__DIE__}> (または C<$SIG{__WARN__}>) ハンドラの呼び出しから 返るまで、C<%SIG> を無視して、それ以降の例外(または警告)が 直接処理されます。 [L], [L], [L] =item * =begin original The C for an object and C for the object's stash weren't always NULL or not-NULL, confusing C (and hence Devel::Peek's C) into crashing on an object with no defined fields in some cases. [L] =end original オブジェクトの C とオブジェクトのスタッシュの C は、常に NULL または非 NULL であるとは限らず、 C (したがって Devel::Peek の C) を混乱させ、 フィールドが定義されていないオブジェクトでクラッシュする場合がありました。 [L] =item * =begin original When comparing strings when using a UTF-8 locale, the behavior was previously undefined if either or both contained an above-Unicode code point, such as 0x110000. Now all such code points will collate the same as the highest Unicode code point, U+10FFFF. [L] =end original UTF-8 ロケールを使って文字列を比較する場合、以前は、一方または両方に 0x110000 などの Unicode 以上の符号位置が含まれている場合の振る舞いは 未定義でした。 このような符号位置はすべて、最も高い Unicode 符号位置である U+10FFFF と同じように照合されるようになりました。 [L] =item * =begin original In regexes, the contents of C<\g{...}> backreferences are now properly validated. Previously, C<\g{1 FOO}> was silently parsed as C<\g{1}>, ignoring everything after the first number. [L] =end original 正規表現内で、 C<\g{...}> 後方参照の内容が適切に検証されるようになりました。 以前は、C<\g{1 FOO}> は暗黙に C<\g{1}> としてパースされ、 最初の数値以降はすべて無視されていました。 [L] =item * =begin original A run-time pattern which contained a code block which recursed back to the same bit of code which ran that match, could cause a crash. [L] =end original マッチングを実行したコードの同じ部分に再帰したコードブロックを含む 実行時パターンは、クラッシュを引き起こす可能性がありました。 [L] =begin original For example: =end original 例えば: my $r = qr/... (?{ foo() if ... }) .../; sub foo { $string =~ $r } foo() =item * =begin original In some cases an C would not add integer parts to the source lines saved by the debugger. [L] =end original 場合によっては、C がデバッガによって保存されたソース行に 整数部分を追加しないことがありました。 [L] =item * =begin original In debugging mode, perl saves source lines from all files (plus an indication of whether each line is breakable) for use by the debugger. The internal storage format has been optimized to use less memory. This should save 24 bytes per stored line for 64-bit systems, more for C<-Duselongdouble> or C<-Dusequadmath> builds. Discussed in [L]. =end original デバッグモードでは、perl はデバッガで使うためにすべてのファイルの ソース行(および各行がブレーク可能かどうかの印)を保存します。 内部ストレージ形式は、より少ないメモリを使うように最適化されます。 これにより、64 ビットシステムでは保存された行ごとに 24 バイトが節約され、 C<-Duselongdouble> または C<-Dusequadmath> ビルドではさらに節約されます。 [L] で 議論されています。 =item * =begin original Ensure cloning the save stack for fork emulation doesn't duplicate freeing the RExC state. [L] =end original フォークエミュレーション用の保存スタックのクローンを作成しても、 RExC 状態の解放が重複しないようになりました。 [L] =item * =begin original Smartmatch against a code reference that uses a loop exit such as C would crash perl. [L] =end original C などのループ出口を使うコード参照に対してスマートマッチングを行うと、 perl がクラッシュしていました。 [L] =item * =begin original Class initializers and C blocks, per L, that called C or other loop exits would crash perl. Same cause as for [L]. =end original L によるクラス初期化子や C ブロックが C や 他のループ終了を呼び出すと、perl がクラッシュしていました。 [L] と同じ原因です。 =item * =begin original Exceptions thrown and caught entirely within a C or C block no longer stop the outer run-loop. =end original C または C ブロック内で完全にスローおよび キャッチされた例外は、外側の実行ループを停止しなくなりました。 =begin original Code such as the following would stop running the contents of the C block once the inner exception in the inner C/C block was caught. This has now been fixed, and runs as expected. ([L]). =end original 次のようなコードは、内部 C/C ブロックの内部例外が キャッチされると、C ブロックの内容の実行を停止していました。 これは現在修正されており、期待どおりに実行されます。 ([L])。 defer { try { die "It breaks\n"; } catch ($e) { warn $e } say "This line would never run"; } =item * =begin original L now clears the error flag if an error occurs when reading and that error is C or C. This allows code that depended on C to clear all errors to ignore these relatively harmless errors. [L] =end original L は、読み込み中にエラーが発生し、そのエラーが C または C である場合、エラーフラグを クリアするようになりました。 これにより、C に依存するコードがすべてのエラーをクリアして、 これらの比較的無害なエラーを無視できるようになります。 [L] =item * =begin original L|perlfunc/open> automatically creates an anonymous temporary file when passed C as a filename: =end original L|perlfunc/open> は、C をファイル名として渡すと、自動的に 匿名一時ファイルを作成します: open(my $fh, "+>", undef) or die ... =begin original This is supposed to work only when the undefined value is the one returned by the C function. =end original これは、未定義値が C 関数によって返された値である場合にのみ 機能することになっています。 =begin original In perls before 5.41.3, this caused a problem due to the fact that the same undefined value can be generated by lookups of non-existent hash keys or array elements, which can lead to bugs in user-level code (reported as [L]). =end original 5.41.3 より前の perl では、存在しないハッシュキーや配列要素の照会によって 同じ未定義値が生成される可能性があり、ユーザレベルのコードで バグが発生する可能性があるため、これは問題を引き起こしていました ([L] として 報告されています)。 =begin original In 5.41.3, additional checks based on the syntax tree of the call site were added, which fixed this issue for some number of common cases, though not all of them, at the cost of breaking the ability of APIs that wrap C to expose its anonymous file mode. A notable example of such an API is autodie. =end original 5.41.3 では、コールサイトの構文木に基づくチェックが追加され、 すべてではないけれどもいくつかの一般的なケースでこの問題が修正されましたが、 その代償として、C をラップして匿名ファイルモードを公開する API の機能が破壊されました。 このような API の注目すべき例は、autodie です。 =begin original This release reverts to the old problem in preference to the new one for the time being. =end original このリリースでは、当面の間、新しい問題よりも古い問題を優先して巻き戻します。 =back =head1 Obituaries =head2 Abe Timmerman =begin original Abe Timmerman (ABELTJE) passed away on August 15, 2024. =end original Abe Timmerman (ABELJE) は、2024 年 8 月 15 日に亡くなりました。 =begin original Since 2002, Abe built and maintained the L project: "a set of scripts and modules that try to run the Perl core tests on as many configurations as possible and combine the results into an easy to read report". Smoking Perl on as many platforms and configurations as possible has been instrumental in finding bugs and developing patches for those bugs. =end original 2002 年以来、Abe は L プロジェクトを構築し、維持してきました: これは、「できるだけ多くの構成で Perl コアテストを実行し、結果を 読みやすいレポートに結合しようとするスクリプトとモジュールのセット」です。 できるだけ多くのプラットフォームと構成で Perl を smoke することは、 バグを見つけ、それらのバグに対するパッチを開発するのに役立ちました。 =begin original Abe was a regular attendee of the Perl Toolchain Summit (née Perl QA Hackathon), the Dutch Perl Workshop and the Amsterdam.pm user group meetings. With his kindness, his smile and his laugh, he helped make Perl and its community better. =end original Abeは、Perl Toolchain Summit (旧称 Perl QA Hackathon), Dutch Perl Workshop, Amsterdam.pm ユーザーグループミーティングに 定期的に参加していました。 彼の優しさと笑顔と笑いで、彼は Perl とそのコミュニティをより良くする 手助けをしました。 =begin original Abeltje's memorial card said "Grab every opportunity to have a drink of bubbly. This is an opportunity". We'll miss you Abe, and we'll have a drink of bubbly in your honor. =end original Abeltje のメモリアルカードには、「あらゆる機会をつかんで、 シャンパンを一杯飲みましょう。これがその機会です」と書かれていました。 私たちはあなたがいなくて寂しいです、 Abe, そして私たちはあなたの名誉のためにシャンパンを一杯飲みましょう。 =head2 Andrew Main =begin original Andrew Main (ZEFRAM) passed away on March 10, 2025. =end original Andrew Main (ZEFRAM) は 2025 年 3 月 10 日に亡くなりました。 =begin original Zefram was a brilliant person, seemingly knowledgeable in everything and happy to impart his knowledge and share his striking insights with a gentle, technical demeanor that often failed to convey the genuine care with which he communicated. =end original Zefram は聡明な人で、あらゆることに精通しているように見え、 彼の知識を喜んで伝え、彼の印象的な洞察を穏やかで技術的な態度で共有しましたが、 彼が本当に心を込めてコミュニケーションしていたことが 伝わらないこともしばしばありました。 =begin original It would be impossible to overstate the impact that Zefram has had on both the language and culture of Perl over the years. From his countless contributions to the code-base, to his often quirky but always distinctive appearances at conferences and gatherings, his influence and memory are sure to endure long into the future. =end original Zefram が長年にわたって Perl の言語と文化の両方に与えてきた影響は、 いくら強調してもしすぎることはありません。 コードベースへの数え切れないほどの貢献から、 会議や集まりでのしばしば奇抜ではあるが常に特徴的な登場まで、 彼の影響力と記憶は将来にわたって長く続くことは間違いありません。 =begin original Zefram wished to have no designated memorial location in meatspace. His designated memorial location in cyberspace is L. =end original Zefram は、現実空間に特定の追悼の場所を持たないことを望んでいました。 サイバー空間における彼の追悼の場所は L です。 =head1 Acknowledgements (謝辞) =begin original Perl 5.42.0 represents approximately 13 months of development since Perl 5.40.0 and contains approximately 280,000 lines of changes across 1,600 files from 65 authors. =end original Perl 5.42.0 は、Perl 5.40.0 以降、65 人の作者によって、 1,600 のファイルに約 280,000 行の変更を加えて、 約 13 ヶ月開発されてきました。 =begin original Excluding auto-generated files, documentation and release tools, there were approximately 94,000 lines of changes to 860 .pm, .t, .c and .h files. =end original 自動生成ファイル、文書、リリースツールを除くと、860 の .pm, .t, .c, .h ファイルに約 94,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.42.0: =end original Perl は、活気のあるユーザーと開発者のコミュニティのおかげで 30 年を超えて 繁栄しています。 以下の人々が、Perl 5.42.0 になるための改良に貢献したことが分かっています: Aaron Dill, Andrei Horodniceanu, Andrew Ruthven, Antanas Vaitkus, Aristotle Pagaltzis, Branislav Zahradník, brian d foy, Chad Granum, Chris 'BinGOs' Williams, Craig A. Berry, Dabrien 'Dabe' Murphy, Dagfinn Ilmari Mannsåker, Dan Book, Daniel Dragan, Dan Jacobson, David Cantrell, David Mitchell, E. Choroba, Ed J, Ed Sabol, Elvin Aslanov, Eric Herman, Erik Huelsmann, Gianni Ceccarelli, Graham Knop, hbmaclean, H.Merijn Brand, iabyn, James E Keenan, James Raspass, Johan Vromans, Karen Etheridge, Karl Williamson, Leon Timmermans, Lukas Mai, Marek Rouchal, Marin Tsanov, Mark Fowler, Masahiro Honma, Max Maischein, Paul Evans, Paul Johnson, Paul Marquess, Peter Eisentraut, Peter John Acklam, Philippe Bruhat (BooK), pyrrhlin, Reini Urban, Richard Leach, Robert Rothenberg, Robin Ragged, Russ Allbery, Scott Baker, Sergei Zhmylev, Sevan Janiyan, Sisyphus, Štěpán Němec, Steve Hay, TAKAI Kousuke, Thibault Duponchelle, Todd Rinaldo, Tony Cook, Unicode Consortium, Vladimír Marek, Yves Orton. これはバージョンコントロール履歴から自動的に生成しているので、ほぼ確実に 不完全です。 特に、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 open an issue at L. Be sure to trim your bug down to a tiny but sufficient test case. =end original もしまだ報告されていないバグだと確信したら、 L にイシューを登録してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。 =begin original If the bug you are reporting has security implications which make it inappropriate to send to a public issue tracker, 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: completed =end meta