名前

perldelta - what is new for perl v5.8.1

perldelta - perl v5.8.1 での変更点

説明

This document describes differences between the 5.8.0 release and the 5.8.1 release.

このドキュメントでは 5.8.0 リリースと 5.8.1 リリースの変更点を 記述しています.

If you are upgrading from an earlier release like 5.6.1, read first the perl58delta, which describes differences between 5.6.0 and 5.8.0.

もしそれよりも前のリリース, 例えば 5.6.1 等からアップデートするのなら, 5.6.0 と 5.8.0 との違いが書かれている perl58delta を読んでおいた方が よいでしょう.

Incompatible Changes

非互換となる変更点

UTF-8 On Filehandles No Longer Activated By Locale

ファイルハンドルの utf-8 フラグは locale 設定から直接影響を受けなくなりました

In Perl 5.8.0 all filehandles, including the standard filehandles, were implicitly set to be in Unicode UTF-8 if the locale settings indicated the use of UTF-8. This feature caused too many problems, so the feature was turned off and redesigned: see "Core Enhancements".

Perl 5.8.0 では, 標準ファイルハンドルを含めた全てのファイルハンドルは, utf-8 を使うロケールが設定されているときには Unicode UTF-8 フラグを暗黙のうちに 設定していました. この機能は多くの問題を引き起こしたため廃止され, また 再設計されました: "Core Enhancements" を 参照してください.

Single-number v-strings are no longer v-strings before "=>"

"=>" の前において1つの数字部分からなる v-string は文字列として扱われます

The version strings or v-strings (see "Version Strings" in perldata) feature introduced in Perl 5.6.0 has been a source of some confusion-- especially when the user did not want to use it, but Perl thought it knew better. Especially troublesome has been the feature that before a "=>" a version string (a "v" followed by digits) has been interpreted as a v-string instead of a string literal. In other words:

Perl 5.6.0 から使えるバージョン文字列(v-string)機能 ("Version Strings" in perldata 参照)は幾分 混乱を招きました. 主にそれを使うことを意図していなかったのにもかかわらず Perl が v-string であると認識してしまうコトが要因です. 特に厄介なのは "=>" の前においてバージョン文字列 ("v" とそれに続く 数字からなります) が文字列リテラルではなく v-string として 処理されてしまうというものです. 例をあげると,

        %h = ( v65 => 42 );

has meant since Perl 5.6.0

というコードは, Perl 5.6.0 以降では

        %h = ( 'A' => 42 );

(at least in platforms of ASCII progeny) Perl 5.8.1 restores the more natural interpretation

(少なくとも ASCII 系のプラットフォームにおいては) この様に認識されて しまいます. Perl 5.8.1 ではこれをより自然に, 次の形に認識します.

        %h = ( 'v65' => 42 );

The multi-number v-strings like v65.66 and 65.66.67 still continue to be v-strings.

複数の数字を持つ v-string, たとえば v65.66 や 65.66.67 は 今後も v-string として処理されるでしょう.

(Win32) The -C Switch Has Been Repurposed

(Win32) -C スイッチが再利用されました

The -C switch has changed in an incompatible way. The old semantics of this switch only made sense in Win32 and only in the "use utf8" universe in 5.6.x releases, and do not make sense for the Unicode implementation in 5.8.0. Since this switch could not have been used by anyone, it has been repurposed. The behavior that this switch enabled in 5.6.x releases may be supported in a transparent, data-dependent fashion in a future release.

-C スイッチが互換性のない形で変更されました. このスイッチは以前は Win32 においてかつ 5.6.x リリースでの "use utf8" において意味を持ちましたが, 5.8.0 におけるユニコード実装の 課程で意味をなさなくなりました. このスイッチを使う人はいなくなったために これは再利用されました. 5.6.x リリースでこのスイッチを有効にした時の 振る舞いは透過的に, データに依存した形で今後のリリースでもサポートされる でしょう.

For the new life of this switch, see "UTF-8 no longer default under UTF-8 locales", and "-C" in perlrun.

このスイッチの新しい効果については "UTF-8 no longer default under UTF-8 locales" 及び "-C" in perlrun を 参照してください.

(Win32) The /d Switch Of cmd.exe

(Win32) cmd.exe の /d スイッチ

Perl 5.8.1 uses the /d switch when running the cmd.exe shell internally for system(), backticks, and when opening pipes to external programs. The extra switch disables the execution of AutoRun commands from the registry, which is generally considered undesirable when running external programs. If you wish to retain compatibility with the older behavior, set PERL5SHELL in your environment to cmd /x/c.

Oerk 5.8.1 では system(), バッククオート, 及び, 外部プログラムへのパイプ 等で内部で使用する cmd.exe シェルの実行時に /d スイッチを使います. その他のスイッチは, 外部プログラムを実行するときに通常望まれていないと 考えられるレジストリからの AutoRun コマンドの実行を無効化します. もし以前の振る舞いを維持したいのなら PERL5SHELL 環境変数に cmd /x/c と 設定して下さい.

Core Enhancements

コア機能の強化

UTF-8 no longer default under UTF-8 locales

UTF-8 ロケールでも UTF-8 は初期状態で有効になることはありません

In Perl 5.8.0 many Unicode features were introduced. One of them was found to be of more nuisance than benefit: the automagic (and silent) "UTF-8-ification" of filehandles, including the standard filehandles, if the user's locale settings indicated use of UTF-8.

Perl 5.8.0 から多くの Unicode 機能が展開されました. その中には便利という よりも厄介なものが見られました. ユーザのロケールに UTF-8 の使用が 記されていたときの, 自動的な(そして水面下で行われる) ファイル ハンドルの "UTF-8-疑惑" です. 標準ファイルハンドルもその対象です.

For example, if you had en_US.UTF-8 as your locale, your STDIN and STDOUT were automatically "UTF-8", in other words an implicit binmode(..., ":utf8") was made. This meant that trying to print, say, chr(0xff), ended up printing the bytes 0xc3 0xbf. Hardly what you had in mind unless you were aware of this feature of Perl 5.8.0. The problem is that the vast majority of people weren't: for example in RedHat releases 8 and 9 the default locale setting is UTF-8, so all RedHat users got UTF-8 filehandles, whether they wanted it or not. The pain was intensified by the Unicode implementation of Perl 5.8.0 (still) having nasty bugs, especially related to the use of s/// and tr///. (Bugs that have been fixed in 5.8.1)

例えば, もしロケールに en_US.UTF-8 を指定していたのなら, STDIN 及び STDOUT は暗黙のうちに binmode(..., ":utf8") を行ったかのように自動的に "UTF-8" になります. これは出力時に, chr(0xff) を書き出したのに最終的には 0xc3 0xbf という2バイトが出力されることになります. Perl 5.8.0 のこの機能に気付いていなければ何が起こったのか理解するのは 難しいでしょう. この問題はかなり大多数の人々が気付きませんでした. 例えば RedHat リリース 8 及び 9 の デフォルトの ロケール設定は UTF-8 でした. このためそのユーザは望まなくても UTF-8 ファイルハンドルを 扱うことになりました. この痛みは Perl 5.8.0 のバグのある Unicode 実装, 特に s/// 及び tr/// に関連する辺り(このバグは 5.8.1 では修正されて います)で激化しました.

Therefore a decision was made to backtrack the feature and change it from implicit silent default to explicit conscious option. The new Perl command line option -C and its counterpart environment variable PERL_UNICODE can now be used to control how Perl and Unicode interact at interfaces like I/O and for example the command line arguments. See perlrun for more information.

この結果, この機能は撤回され, 静かに暗黙のうちにおこなうのではなく 意識して明示的におこなう様に修正されました. 新しい Perl のコマンドラインオプション -C 及びこれに対応する環境変数 PERL_UNICODE によって I/O の様に Perl で Unicode をどのように扱うかの インターフェースとして使うことができるようになりました. 詳細については perlrun を参照してください.

Unsafe signals again available

安全ではないシグナルを再び利用できるようになりました

In Perl 5.8.0 the so-called "safe signals" were introduced. This means that Perl no longer handles signals immediately but instead "between opcodes", when it is safe to do so. The earlier immediate handling easily could corrupt the internal state of Perl, resulting in mysterious crashes.

Perl 5.8.0 において "安全なシグナル" と呼ばれる機能が実装されました. これはシグナルをすぐに処理するのではなく, 安全性を向上させるために "opcode の間で" 処理するようにしたものです. それまでのシグナルハンドラのその場での処理は Perl の内部状態を破壊し, 深刻なクラッシュを引き起こすことがありました.

However, the new safer model has its problems too. Because now an opcode, a basic unit of Perl execution, is never interrupted but instead let to run to completion, certain operations that can take a long time now really do take a long time. For example, certain network operations have their own blocking and timeout mechanisms, and being able to interrupt them immediately would be nice.

しかし新しい安全なモデルにもそれ故の問題がありました. Perl 内部命令の基本単位である opcode がその完了まで割り込まれなくなったために 時間のかかるいくつかの処理は本当に長時間にわたって実行し続けてしまいます. 例えばそれ自身でブロッキングやタイムアウトのメカニズムを持っていますし, 良好な状態であれる様にすぐに割り込むことができます.

Therefore perl 5.8.1 introduces a "backdoor" to restore the pre-5.8.0 (5.7.3, really) signal behaviour. Just set the environment variable PERL_SIGNALS to unsafe, and the old immediate (and unsafe) signal handling behaviour returns.

これらのことから 5.8.0 より前 (性格には 5.7.3 より前) での方法で シグナルを処理するための "バックドア" を設けました. 環境変数 PERL_SIGNALS に unsafe を設定することでいままでの すぐに割り込む(しかし安全ではない)シグナル処理に戻ることができます.

Tied Arrays with Negative Array Indices

配列のタイと負のインデックス

Formerly, the indices passed to FETCH, STORE, EXISTS, and DELETE methods in tied array class were always non-negative. If the actual argument was negative, Perl would call FETCHSIZE implicitly and add the result to the index before passing the result to the tied array method. This behaviour is now optional. If the tied array class contains a package variable named $NEGATIVE_INDICES which is set to a true value, negative values will be passed to FETCH, STORE, EXISTS, and DELETE unchanged.

これまでタイを処理する配列クラスの FETCH 及び, STORE, EXISTS, DELETE メソッドに渡されるインデックスは常に非負でした. 負のインデックスが用いられたときには Perl が FETCHSIZE を暗黙のうちに 呼び出してその結果をこれらのメソッドに渡す前にインデックス値に加算して いました. この振る舞いは今後は選択できるようになりました. タイを処理する配列クラスに $NEGATIVE_INDICES というパッケージ変数があり その値が真であったときには, 負のインデックス値は変更されることなく FETCH, STORE, EXISTS, DELETE に渡されます.

local ${$x}

The syntaxes

以下の構文

        local ${$x}
        local @{$x}
        local %{$x}

now do localise variables, given that the $x is a valid variable name.

によって変数のローカライズを行えるようになりました. $x には有効な変数の名前を与えてください.

Hash Randomisation

ハッシュのランダム化

A vulnerability was found in the "random ordering" of Perl hashes. By carefully crafting the hash keys one can cause the performance of hashes to degenerate considerably, enabling a denial-of-service attack.

Perl ハッシュの "無作為順序化" に脆弱性が見つかりました. 巧妙に作られたハッシュのキーによってハッシュのパフォーマンスが かなり悪化します. これによってサービス妨害攻撃(DoS; denial-of-service attack) が可能です.

To make this malicious crafting harder, a new feature was added to Perl to allow randomising the hash ordering. To activate this feature, set the environment variable PERL_HASH_SEED appropriately, see "PERL_HASH_SEED" in perlrun.

この悪意のある生成を難しくするためにハッシュの順序の無作為化を許す 新しい機能を Perl に追加しました. この機能を有効化するためには環境変数 PERL HASH_SEED に特定の値を設定します. "PERL_HASH_SEED" in perlrun を 参照してください.

Previously while the order of hash elements from keys(), values(), and each() was essentially random, it was still repeatable. Now, however, the order may vary between different runs of Perl.

これまで keys(), values(), each() が返すハッシュ要素の順序は 本来ランダムでしたが繰り返しても安定でした. しかしこの機能の下では Perl の実行毎に異なる順序になります.

Perl has never guaranteed any ordering of the hash keys, and the ordering has already changed several times during the lifetime of Perl 5. Also, the ordering of hash keys has always been, and continues to be, affected by the insertion order.

Perl はハッシュキーの順序について保証しません. そしてその順序は Perl 5 においても数回変化しています. また, ハッシュキーの順序も挿入の順番によって常に変化していますし, 変化していくでしょう.

If the added randomness is used, existing applications may be affected.

新しいランダム性を使うことで以前のアプリケーションに影響が出るかも しれません.

One possible scenario is when output of an application has included hash data. For example, if you have used the Data::Dumper module to dump data into different files, and then compared the files to see whether the data has changed, now you will have false positives since the order in which hashes are dumped will vary. In general the cure is to sort the keys (or the values); in particular for Data::Dumper to use the Sortkeys option; or if some particular order is really important, use tied hashes.

考えられるシナリオとしてはハッシュデータを含むアプリケーションからの出力 です. たとえばデータを Data::Dumper を用いて異なるファイルに出力し, そのファイルを比較してデータの変化を調べていたのなら, ダンプされたハッシュの 順序は様々であるため同一と判断されることはないでしょう. 一般的な回避策としてはキー(もしくは値で)ソートすることです. Data::Dumper においては Sortkeys オプションを使えるでしょう. 特定の順序が本当に重要であるならタイされたハッシュを使うべきでしょう.

More subtle problem is reliance on the order of "global destruction". That is what happens at the end of execution: Perl destroys all data structures, including user data. If your destructors (the DESTROY subroutines) have assumed any particular ordering to the global destruction, there might be problems ahead. For example, in a destructor of one object you cannot assume that objects of any other class are still available, unless you hold a reference to them. If the environment variable PERL_DESTRUCT_LEVEL is set to a non-zero value, or if Perl is exiting a spawned thread, it will also destruct the ordinary references and the symbol tables that are no longer in use. You can't call a class method or an ordinary function on a class that has been collected that way.

より微妙な問題は "グローバルデストラクション" における信頼性です. それは Perl の実行の終了時に起こります. Perl はユーザのデータを含めて全てのデータを破棄します. もしデストラクタ(DESTROY 関数)が特定の順序でグローバルデストラクションが 行われることを考えていたのならこれは頭の痛い問題でしょう. 例えばあるオブジェクトのデストラクタにおいて他のクラスのオブジェクトが まだ有効であるのかはそれへの参照をもっていないのであれば推測できません. もし環境変数 PERL_DESTRUST_LEVEL が非ゼロ値に設定されているか, 生成されたスレッドを終了しているのなら通常のリファレンスやシンボルテーブルも 既に破棄されているでしょう. クラスメソッドやクラスの通常の関数を 呼ぶこともできません.

If the hash randomisation is used, it is certain to reveal hidden assumptions about some particular ordering of hash elements, and outright bugs: it revealed a few bugs in the Perl core and core modules.

もしランダムハッシュを使っているのなら, ハッシュ要素の順序や 率直なにいえばバグについて隠れた仮定を示すのは確かです. それは Perl コアやコアモジュールのバグをあばくでしょう.

To disable the hash randomisation in runtime, just either don't set the environment variable PERL_HASH_SEED, or set it to 0 (zero) before running Perl (for more information see "PERL_HASH_SEED" in perlrun), or to disable the feature completely in compile time, compile with -DNO_HASH_SEED (see INSTALL).

実行時にハッシュのランダム化を無効化するのなら Perl の実行前に 環境変数 PERL_HASH_SEED を解除するか, 0 を設定する(詳細は "PERL_HASH_SEED" in perlrun 参照)か, このコンパイル時に -DNO_HASH_SEED (INSTALL 参照) を設定して完全に無効化するかです.

See "Algorithmic Complexity Attacks" in perlsec for the original rationale.

オリジナルの根拠については "Algorithmic Complexity Attacks" in perlsec を参照してください.

Unicode Character Database 4.0.0

ユニコード文字データベース 4.0.0

Unicode Character Database has been updated to 4.0.0 from 3.2.0.

Unicode 文字データベースは 3.2.0 から 4.0.0 に更新されました.

Deprecation Warnings

廃止機能に対する警告

There is one new feature deprecation. Perl 5.8.0 forgot to add some deprecation warnings, these warnings have now been added. Finally, a reminder of an impending feature removal.

新しい廃止が1つあります. Perl 5.8.0 ではいくつか廃止の警告を失念していたのでここで追加しておきます. 後は将来削除される実装についての再掲です.

(New) Version Strings (v-strings) Are Deprecated

(追加) バージョン文字列 (v-string) は廃止されます

Version Strings (v-strings) have been deprecated and they will be removed in some future release of Perl. Each v-string will trigger the warning v-strings are deprecated. The marginal benefits of v-strings were greatly outweighed by the potential for Surprise and Confusion. If you really want to continue using v-strings but not to see the deprecation warnings, use:

バージョン文字列 (v-string) は廃止されます. しばらく後の Perl のリリースで削除されるでしょう. v-string の使用は警告 v-strings are deprecared を発します. v-string の微々たる利便性は潜在的な混乱から枷となっています. もし v-string を警告なしに本当に使い続けたいのなら次のプラグマを 使ってください:

    no warnings 'deprecated';

(Reminder) Pseudo-hashes really are deprecated

(再掲) 仮想ハッシュは本当に廃止されます

Pseudo-hashes were deprecated in Perl 5.8.0 and will be removed in Perl 5.10.0, see perl58delta for details. Each attempt to access pseudo-hashes will trigger the warning Pseudo-hashes are deprecated. If you really want to continue using pseudo-hashes but not to see the deprecation warnings, use:

仮想ハッシュは Perl 5.8.0 において廃止され, Perl 5.10.0 において 削除されるでしょう. 詳細は perl58delta を参照してください. 仮想ハッシュへのアクセスは警告 Pseudo-hashse are deprecated を発します. もし仮想ハッシュを警告なしに本当に使い続けたいのなら次のプラグマを 使ってください:

    no warnings 'deprecated';

Or you can continue to use the fields pragma, but please don't expect the data structures to be pseudohashes any more.

もしくは fields プラグマを使うことができますが, ハッシュ仮想化におけるデータ構造については手を触れないでください.

(Reminder) 5.005-style threads really are deprecated

(再掲) 5.005 形式のスレッドは本当に廃止されます

5.005-style threads (activated by use Thread;) were deprecated in Perl 5.8.0 and will be removed after Perl 5.8, see perl58delta for details. Each 5.005-style thread creation will trigger the warning 5.005 threads are deprecated. If you really want to continue using the 5.005 threads but not to see the deprecation warnings, use:

5.005 形式のスレッド (use Thread; によって使われるもの) は Perl 5.8.0 において廃止され, Perl 5.8 より後には削除されるでしょう. 詳細は perl58delta を参照してください. 5.005 形式のスレッドの生成は警告 5.005 threads are deprecated を発します. もし 5.005 スレッドを警告なしに本当に使い続けたいのなら次のプラグマを 使ってください:

    no warnings 'deprecated';

(Reminder) The $* Variable Really Is Deprecated

(再掲) $* 変数は本当に廃止されます

The $* variable controlling multi-line matching has been deprecated and will be removed after 5.8. The variable has been deprecated for a long time, and a deprecation warning Use of $* is deprecated is given, now the variable will just finally be removed. The functionality has been supplanted by the /s and /m modifiers on pattern matching. If you really want to continue using the $*-variable but not to see the deprecation warnings, use:

複数行のマッチを制御する $* 変数は Perl 5.8.0 において廃止され, Perl 5.8 より後には削除されるでしょう. この変数は長いこと前に廃止され, Use of $* is deprecated という警告を 発してきましたがついに削除されます. この機能はパターンマッチ時の /s 及び /m 修飾子に引き継がれています. 5.005 形式のスレッドの生成は警告 5.005 threads are deprecated を発します. もし $*変数 を警告なしに本当に使い続けたいのなら次のプラグマを 使ってください:

    no warnings 'deprecated';

Miscellaneous Enhancements

その他の機能

PerlIO::get_layers(FH) returns the names of the PerlIO layers active on a filehandle.

PerlIO::get_layers(FH) はそのファイルハンドルでアクティブな PerlIO レイヤ の名前を返します.

utf8::is_utf8() has been added as a quick way to test whether a scalar is encoded internally in UTF-8 (Unicode).

utf8::is_utf8() がスカラーが内部で UTF-8 (Unicode) であるかを素早く 調べるために加えられました.

Modules and Pragmata

モジュールとプラグマ

Updated Modules

更新されたモジュール

B::Concise

B::Deparse

Benchmark - An optional feature, :hireswallclock, now allows for high resolution wall clock times (uses Time::HiRes).

Benchmark - 任意の機能, :hireswallclock, 高分解能ウォールクロックタイム (Time::HiRes の使用)を許可します.

CGI

charnames - One can now have custom character name aliases.

charnames - 独自の文字名の別名を持つことができます.

CPAN - There is now a simple command line frontend to the CPAN.pm module called cpan.

CPAN - CPAN.pm モジュールへの簡単なコマンドラインフロントエンド cpan が追加されました.

Data::Dumper - A new option, Pair, allows choosing the separator between hash keys and values.

Data::Dumper - 新オプション, Pair, ハッシュのキーと値のセパレータを 選択できます.

DB_File

Devel::PPPort

Digest::MD5

Encode - significant updates on the encoding pragma functionality (tr/// and the DATA filehandle, formats). The ISO 8859-6 conversion table has been corrected (the 0x30..0x39 errorneously mapped to U+0660..U+0669, instead of U+0030..U+0039), the UTF7 encoding has been added.

Encode - encoding プラグマ機能(tr/// 及び DATA ファイルハンドル, format) における重要な更新. ISO 8859-6 変換テーブルの修正(0x30..0x39 を U+0030..U+0039 ではなく U+0660..U+0669 に間違ってマッピングしていた). UTF7 エンコーディングの追加.

libnet

Math::BigInt

MIME::Base64

Net::Ping

podlators

Pod::LaTeX

PodParsers

Pod::Perldoc

Scalar::Util - New utilities: refaddr, isvstring, looks_like_number, set_prototype.

Scalar::Util - 新しいユーティリティ: refaddr, isvstring, looks_like_number, set_prototype.

Storable - can now store code references (via B::Deparse, so not foolproof).

Storable - コードリファレンスの格納 (B::Deparse 経由, foolproof でなく).

Term::ANSIcolor

Test::Harness - now much more picky about extra or missing output from test scripts.

Test::Harness - テストスクリプトの余計な及び足りない出力をよりピックアップ.

Test::More

Test::Simple

Text::Balanced

Time::HiRes - Use of nanosleep(), if available, allows mixing subsecond sleeps with alarms.

Time::HiRes - 可能であれば nanosleep() の使用. alarm 群の subsecond sleeps のミックス.

threads - Several fixes, for example for join() problems and memory leaks. In some platforms (like Linux) that use glibc the memory footprint of one ithread has been reduced by several hundred kilobytes.

threads - いくつかの修正, 例えば join() 問題やメモリリーク. glibc を使ういくつかのプラットフォーム(Linuxも含まれます)における 1つの ithread に使われる数百キロバイト単位のメモリ量の減少.

threads::shared - Many memory leaks have been fixed.

threads::shared - メモリリークを修正.

Unicode::Collate

Unicode::Normalize

Win32::GetFolderPath

Utility Changes

ユーティリティの変更点

The Perl debugger (lib/perl5db.pl) has now been extensively documented and bugs found while documenting have been fixed.

Perl デバッガ (lib/perl5db.pl) の広範囲なドキュメント化及び ドキュメント記述中に見つかったバグの修正.

perldoc has been rewritten from scratch to be more robust and featureful.

perldoc をより強健に機能的に1から書き下ろし.

New Documentation

新しいドキュメント

perl573delta has been added to list the differences between the (now quite obsolete) development releases 5.7.2 and 5.7.3.

perl573delta が追加されました. (いまではとても廃れている) 開発リリース 5.7.2 と 5.7.3 の相違点です.

perl58delta has been added: it is the perldelta of 5.8.0, detailing the differences between 5.6.0 and 5.8.0.

perl58delta が追加されました. perl 5.8.0 での perldelta です. 5.6.0 と 5.8.0 の詳細な相違点です.

perlartistic has been added: it is the Artistic License in pod format, making it easier for modules to refer to it.

perlartistic が追加されました. pod format になっている Artistic License です. より簡単に参照を行えます.

perlgpl has been added: it is the GNU General Public License in pod format, making it easier for modules to refer to it.

perlgpl が追加されました. pod format になっている GNU General Public License です. より簡単に参照を行えます.

perlos400 has been added to tell about the installation and use of Perl in OS/400 PASE.

perlos400 が追加されました. OS/400 PASE での Perl のインストールと使用方法です.

Installation and Configuration Improvements

インストールと設定の改善

The UNIX standard Perl location, /usr/bin/perl, is no longer overwritten by default if it exists. This change was very prudent because so many UNIX vendors already provide a /usr/bin/perl, but simultaneously many system utilities may depend on that exact version of Perl, so better not to overwrite it.

UNIX における標準的な Perl の位置, /usr/bin/perl は, 既にそれが存在するのなら上書きしないようになりました. この変化は身をわきまえたものです. おおくの UNIX ベンダーは 初めから /usr/bin/perl を提供していて, 同時に多くの システムユーティリティが Perl の実際のバージョンに依存しているでしょう. このため上書きしない方が望ましいと判断されました.

One can now specify installation directories for site and vendor man and HTML pages, and site and vendor scripts. See INSTALL.

site 及びベンダーの, マニュアル及びHTML ページ, スクリプトの インストールディレクトリを指定できるようになりました. INSTALL を参照してください.

gcc versions 3.x introduced a new warning that caused a lot of noise during Perl compilation: gcc -Ialreadyknowndirectory (warning: changing search order). This warning has now been avoided by Configure weeding out such directories before the compilation.

gcc バージョン 3.x は Perl のコンパイル時に多くのノイズとなる新しい警告を 発するようになりました: gcc -I既知のディレクトリ (警告: 検索順序に変更がありました).

One can now build subsets of Perl core modules by using the Configure flags -Dnoextensions= and -Donlyextensions=, see INSTALL

Configure フラグ -Dnoextensions= 及び -Donlyextensions= を 使うことで Perl コアモジュールの一部をビルドすることが できるようになりました. INSTALL を参照してください.

Platform-specific enhancements

プラットフォーム固有の機能

In Cygwin Perl can now be built with threads (Configure -Duseithreads).

Cygwin において threads で Perl をビルドできるようになりました (Configure -Duseithreads).

In newer FreeBSD releases Perl 5.8.0 compilation failed because of trying to use <malloc.h>, which in FreeBSD is just a dummy file, and a fatal error to even try to use. Now <malloc.h> is not used.

新しい FreeBSD において, <malloc.h> を使うために Perl 5.8.0 の コンパイルに失敗していました. FreeBSD においてこれはダミーであり, 使おうとすると致命的なエラーとなります. 現在は <malloc.h> を 使用しないようになりました.

Perl is now known to build also in Hitachi HI-UXMPP.

日立 HI_UXMPP でビルドできます.

Mac OS X now installs with Perl version number embedded in installation directory names for easier upgrading of user-compiled Perl, and the installation directories in general are more standard. (In other words, the default installation no longer breaks the Apple-provided Perl.)

Mac OS X はインストールディレクトリ名に埋め込まれている Perl のバージョン番号と共にインストールします. これはユーザがコンパイルした Perl のアップグレードを簡単にするため, そして 一般的なインストールディレクトリをより標準にするためです. (言い換えると, デフォルトのままインストールでは Apple が提供している Perl を 破壊してしまいます.)

Perl has been ported to IBM's OS/400 PASE environment. The best way to build a Perl for PASE is to use an AIX host as a cross-compilation environment. See README.os400.

IBM の OS/400 PASE 環境で Perl を使えるようになりました. PASE 用の Perl を構築する最良の方法は, クロスコンパイル環境として AIX を 使うことです. README.os400 を参照してください.

Yet another cross-compilation option has been added, now Perl builds on OpenZaurus, see the Cross subdirectory.

別のクロスコンパイルオプションが追加されました. OpenZaurus の Perl をビルドします. Cross サブディレクトリを 参照してください.

Tru64 gcc 3.2.1 -O3 toke.c dropped to -O2 because of gigantic memory use otherwise.

Tru64 gcc 3.2.1 -O3 toke.c を -O2 に落としました. かなりのメモリ消費を引き起こすためです.

Tru64 can now build Perl with the newer Berkeley DBs.

Tru64 において新しい Berkeley DB で Perl をビルドできます.

Building Perl on WinCE has been much enhanced, see the wince subdirectory.

WinCE 上での Perl のビルドが高まりました. wince サブディレクトリを参照してください.

Selected Bug Fixes

バグ修正の抜粋

Closures, eval and lexicals

クロージャ, eval, レキシカル

There have been many fixes in the area of anonymous subs, lexicals and closures. Although this means that Perl is now more "correct", it is possible that some existing code will break that happens to rely on the faulty behaviour. In practice this is unlikely unless your code contains a very complex nesting of anonymous subs, evals and lexicals.

無名関数, レキシカル, クロージャに対して多くの修正が施されています. Perl はより "精緻" になったといえますが欠点のあった振る舞いを信頼していた 既存のコードが動かなくなる可能性もあります. とはいえ実際にはこれはとても複雑にネストしている無名関数, eval, レキシカル がなければありそうもないことです.

Generic fixes

一般的な修正

binmode(SOCKET, ":utf8") only worked on the input side, not on the output side of the socket. Now it works both ways.

binmode(SOCKET, ":utf8") はソケットの入力側のみで出力側には 機能していませんでした. これは両方向で機能するように修正されました.

For threaded Perls certain system database functions like getpwent() and getgrent() now grow their result buffer dynamically, instead of failing. This means that at sites with lots of users and groups the functions no longer fail by returning only partial results.

スレッド Perl において getpwent() や getgrent() の様ないくつかの システムデータベース関数 は失敗の代わりにその結果格納バッファを動的に 拡大します. これは多くのユーザやグループを抱えるサイトでこれらの関数が 一部の結果だけを返して失敗することを回避します.

Perl 5.8.0 had accidentally broken the capability for users to define their own uppercase<->lowercase Unicode mappings (as advertised by the Camel). This feature has been fixed and is also documented better.

Perl 5.8.0 はユーザが独自の大文字<->小文字 Unicode マッピング(Camel が 広告しているように)を定義する互換性を偶発的に破壊していました. この機能は修正され, ドキュメントかもされました.

In 5.8.0 this

5.8.0 において次のコード

        $some_unicode .= <FH>;

didn't work correctly but instead corrupted the data. This has now been fixed.

は正しく機能せずデータを破壊してしまいました. これは現在では修正されています.

FETCH etc may now safely access tied values (ie resulting in a recursive call to FETCH etc).

FETCH 等でタイされた値に安全にアクセスできるでしょう. (すなわち FETCH 等の安全な再帰呼び出し.)

At startup Perl blocks the SIGFPE signal away since there isn't much Perl can do about it. Previously this blocking was in effect also for programs executed from within Perl. Now Perl restores the original SIGFPE handling routine, whatever it was, before running external programs.

起動時に Perl は それを処理できるまで SIGFPE シグナルをブロックします. これまでこのブロックは実際のところ Perl の中から実行されるプログラムのため でした. 現在では外部プログラムを実行する前に Perl は もとの SIGFPE ハンドラを復元します.

Linenumbers in Perl scripts may now be greater than 65536, or 2**16. (Perl scripts have always been able to be larger than that, it's just that the linenumber for reported errors and warnings have "wrapped around".) While scripts that large usually indicate a need to rethink your code a bit, such Perl scripts do exist, for example as results from generated code. Now linenumbers can go all the way to 4294967296, or 2**32.

Perl スクリプトにおいて行番号は 65535 若しくは 2**16 より大きくなれるでしょう. (Perl スクリプトは いつでもこれより大きな値をとることができます. これは単にエラーや警告時の行番号の持っている"ラップされた動作"です.) それほど大きなスクリプトはコードをちょっと考え直した方がいいコトを 示している一方で, その様なコードはスクリプトに生成されたコードなどとして 存在します. 現在では 4294967296 若しくは 2**32 まで到達できます.

Module-specific fixes

モジュールの修正

Encode: if a filehandle has been marked as to have an encoding, unmappable characters are detected already during input, not later (when the corrupted data is being used).

Encode: ファイルハンドルがあるエンコーディングと関連づけられているのなら マッピングできない文字は入力後(壊れたデータを使った時)ではなく入力時に 検出されます.

PerlIO::scalar; reading from non-string scalars (like the special variables, see perlvar) now works.

PerlIO::scalar; 文字列ではないスカラーからの読み込み (特殊な変数など, perlvar 参照) が機能するようになりました.

Platform-specific fixes

プラットフォーム固有の修正

Linux

  • Setting $0 works again (with certain limitations that Perl cannot do much about: see "$0" in perlvar)

    $0 が再び設定されます (perl が行えない制限はあります: "$0" in perlvar 参照).

HP-UX

  • Setting $0 now works.

    $0 の設定が機能するようになりました.

VMS

  • IO::Poll now works.

    IO::Poll が機能するようになりました.

Win32

  • A memory leak in the fork() emulation has been fixed.

    fork() エミュレーション時のメモリーリークが修正されました.

  • The return value of the ioctl() built-in function was accidentally broken in 5.8.0. This has been corrected.

    5.8.0 で破損していた ioctl() 組み込み関数の復帰値が修正されました.

  • The internal message loop executed by perl during blocking operations sometimes interfered with messages that were external to Perl. This often resulted in blocking operations terminating prematurely or returning incorrect results, when Perl was executing under environments that could generate Windows messages. This has been corrected.

    perl がブロッキング処理中に実行していた内部メッセージループが Perl の外へのメッセージと時々衝突しました. これはしばしば Perl が Windows メッセージを生成する環境下で実行しているときに ブロッキング動作に早すぎる終了や正しくない結果を返すことになりました. これは修正されています.

  • Pipes and sockets are now automatically in binary mode.

    pipe と socket が自動的にバイナリモードになるようになりました.

  • The four-argument form of select() did not preserve $! (errno) properly when there were errors in the underlying call. This is now fixed.

    4 引数の select() が呼び出し中にエラーとなったときに $! (errno) を 適切に保存していなかったのが修正されました.

New or Changed Diagnostics

追加された及び変更された診断メッセージ

All the warnings related to pack() and unpack() were made more informative and consistent.

pack() 及び unpack() に関連する全ての警告はより有益なものに, 矛盾のないものに 修正されました.

Changed "A thread exited while %d threads were running"

変更 "%d 個のスレッドが実行中であるのにあるスレッドで exit が実行されました"

The old version

以前のメッセージ

    A thread exited while %d other threads were still running

    %d 個の他のスレッドがまだ実行中であるのにあるスレッドで exit が
    実行されました

was misleading because the "other" included also the thread giving the warning.

は "他の" とあるのに警告となったスレッド自身も含まれていたために 誤解を生じていました.

Removed "Attempt to clear a restricted hash"

削除 "固定されているハッシュをクリアしようとしています"

It is not illegal to clear a restricted hash, so the warning was removed.

固定されているハッシュのクリアは不正ではありません. そのためこの警告は削除されました.

New "Can't provide tied hash usage; use keys(%hash) to test if empty"

追加 "タイハッシュの操作を提供できません; 空の確認には keys(%hash) を使ってください"

Use of %hash in scalar context (like for example as the test of if) is not available for tied hashes. Currently any tied hash, elements or not, returns a true value in scalar context. This is probably not what you had in mind, so Perl aborts.

スカラーコンテキストでの %hash の使用(例えば if でのテスト)は タイされたハッシュでは使えません. 現在どのタイされたハッシュに対しても 要素の有無にかかわらずスカラーコンテキストでは真を返します. これはおそらく予想された動作ではないため Perl は中断します.

New "Illegal declaration of anonymous subroutine"

追加 "無名関数が不正に宣言されました"

You must specify the block of code for sub.

sub にはコードブロックを指定しなければなりません.

Changed "Invalid range "%s" in transliteration operator"

変更 "文字置換(tr)操作において無効な範囲 "%s" が指定されました"

The old version

以前のメッセージ

    Invalid [] range "%s" in transliteration operator

    文字置換(tr)操作において無効な [] 範囲 "%s" が指定されました

was simply wrong because there are no "[] ranges" in tr///.

tr/// には "[] 範囲" がないという点で単純に間違っていました.

New "Missing control char name in \c"

追加 "\c の制御文字名がありません"

Self-explanatory.

それ自身が説明しています.

New "Newline in left-justified string for %s"

追加 "左詰の文字列 %s に改行があります"

The padding spaces would appear after the newline, which is probably not what you had in mind.

追加の空白が改行の後にあらわれました. これはおそらく予期したものではないでしょう.

New "Possible precedence problem on bitwise %c operator"

追加 "ビット演算 %c の優先順位が意図しない可能性があります"

If you think this

次の条件

    $x & $y == 0

tests whether the bitwise AND of $x and $y is zero, you will like this warning.

が $x と $y のビット論理積が 0 であるとテストしたいのなら この警告は好ましいものでしょう.

New "Pseudo-hashes are deprecated"

追加 "仮想ハッシュは廃止されます"

This warning should have been already in 5.8.0, since they are.

この警告は 5.8.0 からあります.

New "read() on %s filehandle %s"

追加 "%s 状態のファイルハンドル %s から read() を行いました"

You cannot read() (or sysread()) from a closed or unopened filehandle.

閉じられたもしくは開いていないファイルハンドルから read() (もしくは sysread()) は行えません.

New "5.005 threads are deprecated"

追加 "5.005 スレッドは廃止されます"

This warning should have been already in 5.8.0, since they are.

この警告は 5.8.0 からあります.

New "Tied variable freed while still in use"

追加 "使用中のタイ変数が解放(free)されました"

Something pulled the plug on a live free variable, Perl plays safe by bailing out.

生存中に栓を抜かれた何かが変数を解放します, Perl は安全のために保釈します.

New "To%s: illegal mapping '%s'"

追加 "To%s: 不正なマッピング '%s'"

An illegal user-defined Unicode casemapping was specified.

不正なユーザ定義の Unicode case マッピングが指定されました.

New "Use of freed value in iteration (perhaps you modified the iterated array within the loop?)"

追加 "イテレーションにおいて解放された値を使用しました (おそらくループ内でイテレートしている配列を修正したと思われます)"

Something modified the values being iterated over. This is not good.

何かがイテレートしている値を変更しました. これはよい;ことではありません.

New "v-strings are deprecated"

追加 "v-string は廃止されます"

The marginal benefits of v-strings were greatly outweighed by the potential for Surprise and Confusion.

v-string の微々たる利便性は潜在的な混乱から枷となっています.

Changed Internals

内部動作の変更点

These news matter to you only if you either write XS code or like to hack Perl internals, or like to run Perl with the -D option.

これらのニュースは XS コードを書いているか Perl 内部をハックしている, もしくは -D オプションで Perl を実行する人にのみ重要です.

The embedding examples of perlembed have been reviewed to be uptodate and consistent: for example, the correct use of PERL_SYS_INIT3() and PERL_SYS_TERM().

perlembed にある埋め込みの例は最新に対応するため, そして矛盾をなくすために 書く改められました: 例えば PERL_SYS_INIT3() や PERL_SYS_TERM() の正しい 使用方法等です.

Extensive reworking of the pad code has been conducted by Dave Mitchell.

Dave Mitchell によって pad コードの広範囲の再活動がなされました.

Extensive work on the v-strings by John Peacock.

John Peacock による v-sting の広範囲の動作.

UTF-8 length and position cache: to speed up the handling of Unicode (UTF-8) scalars, a cache was introduced. Potential problems if an extension bypasses the official APIs and directly modifies the PV of an SV: the UTF-8 cache does not get cleared as it should.

UTF-8 の長さと位置のキャッシュ: Unicode (UTF-8) スカラーの速度向上のために キャッシュが実装されました. 公式の API を経由しないで直接 SV の PV を 書き換えるエクステンションでは潜在的に問題となるでしょう: このときクリアされるべき UTF-8 キャッシュがクリアされないためです.

APIs obsoleted in Perl 5.8.0s like sv_2pv, sv_catpvn, sv_catsv, sv_setsv, are again available.

Perl 5.8.0 で廃止された sv_2pv, sv_catpvn, sv_catsv, sv_setsv が 再び使えるようになりました.

Certain Perl core C APIs like cxinc and regatom are no longer available. They never should have been, and if you application depends on them, you should (be ashamed and) contact perl5-porters to discuss what are the proper APIs.

cxinc や regatom といった特定の Perl コアの C API が有効でなくなりました. 今後使うことはできません. またアプリケーションでこれらに依存しているのなら (そのことを恥じるべきであり, そして) perl5-porters においてでなぜそれが 適切であるのか説明して議論してください.

Certain APIs like Perl_list are no longer available without their Perl_ prefix. If your XS module stops working because some functions cannot be found, in many cases a simple fix is to add the Perl_ prefix to the function and the thread context aTHX_ as the first argument of the function call. For cleaner embedding you can also force this for all APIs by defining at compile time the cpp define PERL_NO_SHORT_NAMES.

Perl_list といったいくつかの API が Perl_ プレフィックスなしでは 有効でなくなりました. もしいくつかの関数が見つからなくて XS モジュールが とまったら, いくつかのケースでは関数に Perl_ プレフィックスをつけて 関数呼び出しの最初の引数にスレッドコンテキスト aTHX_ が加わることで 簡単になおるでしょう. きれいな埋め込みのためにもコンパイル時に cpp (訳注: C プリプロセッサ)で PERL_NO_SHORT_NAMES を定義して全ての API にこれを強制 するべきでしょう.

Perl_save_bool() has been added.

Perl_save_bool() が追加されました.

-DL removed (the leaktest had been broken and unsupported for years, use alternative debugging mallocs or tools like valgrind and Purify).

-DL が削除されました. (リークテストは破損していて長いこと サポートされていません. 代わりにデバッグ malloc を使うか valgrind や Purify といったツールを使ってください.)

Verbose modifier v added for -DXv and -Dsv, see perlrun.

冗長修飾子 v-DXv 及び -Dsv に追加されました. perlrun を参照してください.

New Tests

新しいテスト

In Perl 5.8.0 there were about 69000 separate tests in about 700 test files, in Perl 5.8.1 there are about 75000 separate tests in about 750 test files. The exact numbers depend on the Perl configuration and on the operating system platform.

Perl 5.8.0 では約 700 のテストファイルに およそ 69,000 のテストがありました. Perl 5.8.1 では約 750 のテストファイルに およそ 75,000 のテストがあります. 正確な数は Perl の設定やOSプラットフォームに依存して変化します.

Known Problems

既知の問題点

Many of the rarer platforms that worked 100% or pretty close to it with perl 5.8.0 have been left a little bit untended since their maintainers have been otherwise busy lately, and therefore there will be more failures on those platforms. Such platforms include Mac OS Classic, IBM z/OS (and other EBCDIC platforms), and NetWare. The most common Perl platforms (Unix and Unix-like, Microsoft platforms, and VMS) have large enough testing and expert population that they are doing well.

稀なプラットフォームの Perl 5.8.0 が 100% もしくはほぼ 100% 近く動作する 箇所の多くで, そのメンテナが多忙であったために幾分世話が遠くなっていました. その様なプラットフォームでは他のプラットフォームより失敗が多くなるでしょう. Max OS Classic, IBM z/OS (及び他のEBCDIC プラットフォーム), NetWare などが 当たります. 多くの共通の Perl プラットフォーム (Unix 及び Unixライクな プラットフォーム, Microsoft プラットフォーム, VMS) は良く行う十分の多くの テストとエキスパート人口があります.

lib/Net/Ping/t/510_ping_udp.t subtest 2

The subtest 2 of lib/Net/Ping/t/510_ping_udp.t might fail if you have an unusual networking setup. The test is trying to send a UDP ping to the IP address 127.0.0.1.

lib/Net/Ping/t/510_ping_udp.t のサブテスト 2 はあまりないネットワーク 設定を行っていると失敗します. このテストは UDP ping を IP アドレス 127.0.0.1 に送ろうとします.

Platform Specific Problems

プラットフォーム固有の問題点

EBCDIC Platforms

EBCDIC プラットフォーム

IBM z/OS and other EBCDIC platforms continue to be problematic regarding Unicode support.

IBM z/OS 及び他の EBCDIC プラットフォームは Unicode サポートに関して 不明確なままです.

FreeBSD: malloc dilemma

FreeBSD: malloc のジレンマ

The choice of malloc (the C-level memory management interface) when building Perl is problematic in FreeBSD.

Perl ビルド時の malloc (C レベルメモリ管理インターフェース) の選択は FreeBSD では未解決です.

Using FreeBSD's system malloc for Perl was found to be very slow: in some cases that was 200 times slower than using the Perl malloc. One such case is file input: for example

Perl で FreeBSD のシステム malloc を使うことはとても遅くなります: いくつかのケースでは, Perl の malloc を使うよりも 200 倍も劣化します. その様なケースの1つにファイル入力があります: 例えば,

    # slurping the whole compressed Perl source code into $a
    # 圧縮された Perl ソース全体を $a に読み込み. 
    if (open F,"perl-5.8.1.tar.gz") { local $/; $a=<F> }

is about 200-250 times slower with the system malloc than with the Perl malloc.

は Perl malloc の代わりにシステム malloc を使うとおよそ 200 - 250 倍も 遅くなります.

One could use Perl's malloc (Configure -Dusemymalloc), but that was found to cause random core dumps in FreeBSD with multithreaded programs. No such problems were found in other platforms, however.

Perl の malloc を使うこともできます(Configure -Dusemymalloc)が, FreeBSD でのマルチスレッドプログラムにおいてランダムなコアダンプが みられます. しかしこの問題はほかのプラットフォームではみられません.

A decision was made to stick with the system malloc, regardless of the performance problems.

解決策は, パフォーマンスの問題には目をつぶってシステムの malloc で我慢する ことでしょう.

HP-UX: HP cc warnings about sendfile

HP-UX: HP cc は sendfile について警告を発します

With certain HP C compiler releases (e.g. B.11.11.02) you will get many warnings like this:

いくつかの HP C コンパイラリリース (例えば B.11.11.02) では 次のような警告をだします:

    cc: "/usr/include/sys/socket.h", line 504: warning 562: Redeclaration of "sendfile" with a different storage class specifier: "sendfile" will have internal linkage.

    cc: "/usr/include/sys/socket.h", line 504: warning 562: 異なるストレージクラス指示子による "sendfile" の再宣言: "sendfile" は内部リンケージになります.

This warning, however, is not serious and can be ignored.

これは警告ではありますが, 重大なものではなく無視することができます.

Tru64: No threaded builds with GNU cc (gcc)

Tru64: GNU cc (gcc) でスレッドをビルドできません

In the latest Tru64 releases (e.g. v5.1B) the gcc (3.3) cannot be used to compile a threaded Perl (-Duseithreads) because the system <pthread.h> file doesn't know about gcc.

最近の Tru64 リリース (例えば v5.1B) において gcc (3.3) をスレッド Perl をビルドするために使えません(-Duseithreads). システムの <pthread.h> ファイルを gcc が見つけられないためです.

Win32: sysopen, sysread, syswrite

As of the 5.8.0 release, sysopen()/sysread()/syswrite() do not behave like they used to in 5.6.1 and earlier with respect to "text" mode. These built-ins now always operate in "binary" mode (even if sysopen() was passed the O_TEXT flag, or if binmode() was used on the file handle). Note that this issue should only make a difference for disk files, as sockets and pipes have always been in "binary" mode in the Windows port. As this behavior is currently considered a bug, compatible behavior may be re-introduced in a future release. Until then, the use of sysopen(), sysread() and syswrite() is not supported for "text" mode operations.

Perl 5.8.0 リリース現在で sysopen()/sysread()/syswrite() "テキスト" モード において 5.6.1 やそれ以前で使われていたような振る舞いをとりません. これらのビルトイン関数は (sysopen() に O_TEXT フラグを指定したり, binmode() をファイルハンドルに使ったとしても) "バイナリ" モードとして処理されます. このことはディスク上のファイルにのみ関係することで, Windows 版においては ソケットやパイプは常に "バイナリ" モードとなります. この振る舞いは現在はバグとして考えられ, 今後互換のある振る舞いが提供される でしょう. それまでは sysopen()/sysread()/syswrite() の使用時における "テキスト" モード操作はサポートされません.

Future Directions

今後の展開

The following things might happen in future. The first publicly available releases having these characteristics will be the developer releases Perl 5.9.x, culminating in the Perl 5.10.0 release. These are our best guesses at the moment: we reserve the right to rethink.

以下のことが今後おこるでしょう. これらの特徴を持つ最初の公的なリリースは開発者リリース Perl 5.9.x になり, Perl 5.10.0 になるでしょう. これらは当時の最良となる推測です: 私たちは考え直す権利を持っています.

  • PerlIO will become The Default. Currently (in Perl 5.8.x) the stdio library is still used if Perl thinks it can use certain tricks to make stdio go really fast. For future releases our goal is to make PerlIO go even faster.

    PerlIO はデフォルトになるでしょう. 現在 (Perl 5.8.x) でも stdio を本当に高速化する技術を使っているのなら stdio ライブラリを今でも使うコトができます. 今後のリリースでの目標は PerlIO を同じくらい高速にすることです.

  • A new feature called assertions will be available. This means that one can have code called assertions sprinkled in the code: usually they are optimised away, but they can be enabled with the -A option.

    assertions という新しい機能ができるでしょう. これは コードに散らされたアサーションと呼ばれるコードを持つことができるように なります: 通常これらは最適化で除去されますが, -A オプションにより 実行することができます.

  • 5.005 Threads Will Be Removed

    5.005 スレッドは削除されます.

  • V-strings (Version Strings) Will Be Removed

    v-string (バージョン文字列)は削除されます.

  • The $* Variable Will Be Removed

    $* 変数は削除されます.

  • Pseudohashes Will Be Removed

    仮想ハッシュは削除されます.

Reporting Bugs

バグレポート

If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at http://bugs.perl.org/ . There may also be information at http://www.perl.com/ , the Perl Home Page.

もしバグと思われるものが見つかったら, comp.lang.perl.misc ニュース グループに最近投稿された記事や http://bugs.perl.org/ にある perl バグデータベースを確認してください. Perl ホームページ, http://www.perl.com/ 情報はにもあります.

If you believe you have an unreported bug, please run the perlbug 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 perl -V, will be sent off to perlbug@perl.org to be analysed by the Perl porting team. You can browse and search the Perl 5 bugs at http://bugs.perl.org/

もしまだ報告されていないバグだと確信したら, そのリリースに含まれている perlbug プログラムをを実行してください. バグの再現スクリプトを十分小さく, しかし有効なコードに切りつめることを意識してください. バグレポートは perl -V の出力と一緒に perlbug@perl.org に送られ Perl porting チームによって解析されるます. Perl 5 のバグについては http://bugs.perl.org/ で閲覧及び検索することができます.

SEE ALSO

The Changes file for exhaustive details on what changed.

Changes ファイルに変更点の完全な詳細があります.

The INSTALL file for how to build Perl.

INSTALL ファイルに Perl のビルド方法があります.

The README file for general stuff.

README ファイルに一般的なことがあります.

The Artistic and Copying files for copyright information.

Artistic 及び Copying ファイルに著作権情報があります.

translate to Japanese

和訳

YAMASHINA Hio <hio@hio.jp>

山科 氷魚 (YAMASHINA Hio) <hio@hio.jp>