perldelta - what is new for perl v5.8.8

perl588delta - perl v5.8.8 の新機能


This document describes differences between the 5.8.7 release and the 5.8.8 release.

このドキュメントでは 5.8.7 リリースと 5.8.8 リリースとでの相異点を 説明します.

Incompatible Changes 非互換となる修正

There are no changes intentionally incompatible with 5.8.7. If any exist, they are bugs and reports are welcome.

5.8.7 と意図的な非互換はありません. もしなにか非互換と思われる事項が ありましたら, それらはバグでしょう. ぜひ報告をお願いします.

Core Enhancements コアの機能拡張

  • chdir, chmod and chown can now work on filehandles as well as filenames, if the system supports respectively fchdir, fchmod and fchown, thanks to a patch provided by Gisle Aas.

    Gisle Aas の提供したパッチのおかげで, chdir, chmod 及び chown は, システムがそれぞれ fchdir, fchmod 及び fchown をサポートしていれば, ファイル名でと同じように ファイルハンドルに対しても動作します.

Modules and Pragmata モジュールとプラグマ

  • Attribute::Handlers upgraded to version 0.78_02

    Attribute::Handlers はバージョン 0.78_02 にアップグレードされました.

    • Documentation typo fix


  • attrs upgraded to version 1.02

    attrs はバージョン 1.02 にアップグレードされました.

    • Internal cleanup only


  • autouse upgraded to version 1.05

    autouse はバージョン 1.05 にアップグレードされました.

    • Simplified implementation


  • B upgraded to version 1.09_01

    B はバージョン 1.09_01 にアップグレードされました.

    • The inheritance hierarchy of the B:: modules has been corrected; B::NV now inherits from B::SV (instead of B::IV).

      B:: モジュールの継承階層が訂正されました; B::NVB::SV から派生します(以前は B::IV でした).

  • blib upgraded to version 1.03

    blib はバージョン 1.03 にアップグレードされました.

    • Documentation typo fix


  • ByteLoader upgraded to version 0.06

    ByteLoader はバージョン 0.06 にアップグレードされました.

    • Internal cleanup


  • CGI upgraded to version 3.15

    CGI はバージョン 3.15 にアップグレードされました.

    • Extraneous "?" from self_url() removed

      self_url() から外側の "?" が取り除かれました.

    • scrolling_list() select attribute fixed

      scrolling_list() の select の属性は修正されました.

    • virtual_port now works properly with the https protocol

      https プロトコルでも virtual_port が正しく機能する ようになりました.

    • upload_hook() and append() now works in function-oriented mode

      関数指向モードでも upload_hook()append() が機能する様に なりました.

    • POST_MAX doesn't cause the client to hang any more

      POST_MAX がクライアントをそれ以上にハングさせない様になりました.

    • Automatic tab indexes are now disabled and new -tabindex pragma has been added to turn automatic indexes back on

      自動的なタブインデックスは無効になりました, そして新しい -tabindex プラグマが加えられ, これによって自動インデックスを再び有効にすることが できます.

    • end_form() は空の(そして有効でない) <div> を発行しなくなりました.

    • CGI::Carp works better in certain mod_perl configurations

      CGI::Carp はいくつかの mod_perl 設定でもよりよく動作するように なりました.

    • Setting $CGI::TMPDIRECTORY is now effective

      $CGI::TMPDIRECTORY の指定がより効果的になりました.

    • Enhanced documentation


  • charnames upgraded to version 1.05

    charnames はバージョン 1.05 にアップグレードされました.

    • viacode() now accept hex strings and has been optimized.

      viacode() は16進文字列を受け付けるようになり, より最適化 されました.

  • CPAN upgraded to version 1.76_02

    CPAN はバージョン 1.76_02 にアップグレードされました.

    • 1 minor bug fix for Win32

      Win32 での小さなバグを1つ修正.

  • Cwd upgraded to version 3.12

    Cwd はバージョン 3.12 にアップグレードされました.

    • canonpath() on Win32 now collapses foo\.. sections correctly.

      Win32 において canonpath()foo\.. の部分をちゃんと 壊すようになりました.

    • Improved behaviour on Symbian OS.

      Symbian OS での振る舞いの改善.

    • Enhanced documentation and typo fixes


    • Internal cleanup


  • Data::Dumper upgraded to version 2.121_08

    Data::Dumper はバージョン 2.121_08 にアップグレードされました.

    • A problem where Data::Dumper would sometimes update the iterator state of hashes has been fixed

      Data::Dumper がときどきハッシュのイテレーション状態を更新してしまう 問題は修正されました.

    • Numeric labels now work


    • Internal cleanup


  • DB upgraded to version 1.01

    DB はバージョン 1.01 にアップグレードされました.

    • A problem where the state of the regexp engine would sometimes get clobbered when running under the debugger has been fixed.

      デバッガで動かしたときに正規表現エンジンの状態がときどき破壊される問題が 修正されました.

  • DB_File upgraded to version 1.814

    DB_File はバージョン 1.814 にアップグレードされました.

    • Adds support for Berkeley DB 4.4.

      Berkeley DB 4.4 のサポートが追加されました.

  • Devel::DProf upgraded to version 20050603.00

    Devel::DProf はバージョン 20050603.00 にアップグレードされました.

    • Internal cleanup


  • Devel::Peek upgraded to version 1.03

    Devel::Peek はバージョン 1.03 にアップグレードされました.

    • Internal cleanup


  • Devel::PPPort upgraded to version 3.06_01

    Devel::PPPort はバージョン 3.06_01 にアップグレードされました.

    • --compat-version argument checking has been improved

      --compat-version 引数のチェックが改善されました.

    • Files passed on the command line are filtered by default

      コマンドラインから渡されたファイルはデフォルトでフィルタされるように なりました.

    • --nofilter option to override the filtering has been added

      フィルタリングを上書きする --nofilter オプションが追加されました.

    • Enhanced documentation


  • diagnostics upgraded to version 1.15

    diagnostics はバージョン 1.15 にアップグレードされました.

    • Documentation typo fix


  • Digest upgraded to version 1.14

    Digest はバージョン 1.14 にアップグレードされました.

    • The constructor now knows which module implements SHA-224

      コンストラクタが SHA-224 を実装しているモジュールを 知るようになりました.

    • Documentation tweaks and typo fixes


  • Digest::MD5 upgraded to version 2.36

    Digest::MD5 はバージョン 2.36 にアップグレードされました.

    • XSLoader is now used for faster loading

      ロードの高速化のために XSLoader を使うようになりました.

    • Enhanced documentation including MD5 weaknesses discovered lately

      最近発見された MD5 の弱点をドキュメントに加筆.

  • Dumpvalue upgraded to version 1.12

    Dumpvalue はバージョン 1.12 にアップグレードされました.

    • Documentation fix


  • DynaLoader upgraded but unfortunately we're not able to increment its version number :-(

    DynaLoader はアップグレードされましたが, 不幸なことにバージョン番号を あげることができませんでした.

    • Implements dl_unload_file on Win32

      Win32 での dl_unload_file の実装.

    • Internal cleanup


    • XSLoader 0.06 incorporated; small optimisation for calling bootstrap_inherit() and documentation enhancements.

      XSLoader 0.06 は合併されました. bootstrap_inherit() の 呼び出しの小さな最適化とドキュメンテーションの強化が行われました.

  • Encode upgraded to version 2.12

    Encode はバージョン 2.12 にアップグレードされました.

    • A coderef is now acceptable for CHECK!

      CHECK にコードリファレンスを受け付けるようになりました!

    • 3 new characters added to the ISO-8859-7 encoding

      ISO-8859-7 エンコーディングに新しく3文字が追加されました.

    • New encoding MIME-Header-ISO_2022_JP added

      新しいエンコーディング MIME-Header-ISO_2022_JP が 追加されました.

    • Problem with partial characters and encoding(utf-8-strict) fixed.

      部分文字と encoding(utf-8-strict) に関する問題が修正されました.

    • Documentation enhancements and typo fixes


  • English upgraded to version 1.02

    English はバージョン 1.02 にアップグレードされました.

    • the $COMPILING variable has been added

      $COMPILING 変数が追加されました.

  • ExtUtils::Constant upgraded to version 0.17

    ExtUtils::Constant はバージョン 0.17 にアップグレードされました.

    • Improved compatibility with older versions of perl

      古いバージョンの perl との互換性が改善されました.

  • ExtUtils::MakeMaker upgraded to version 6.30 (was 6.17)

    ExtUtils::MakeMaker はバージョン 6.30 にアップグレードされました (前は 6.17 でした).

  • File::Basename upgraded to version 2.74, with changes contributed by Michael Schwern.

    File::Basename は Michael Schwern による寄稿を含むバージョン 2.74 に アップグレードされました.

    • Documentation clarified and errors corrected.


    • basename now strips trailing path separators before processing the name.

      basename が名前を処理する前に末尾のパス区切り文字を取り除くように なりました.

    • basename now returns / for parameter /, to make basename consistent with the shell utility of the same name.

      basename は同じ名前のシェルユーティリティと一致するように, パラメータ / に対して / を返すようになりました.

    • The suffix is no longer stripped if it is identical to the remaining characters in the name, again for consistency with the shell utility.

      サフィックスは残りの文字が同一であっても取り除かれなくなりました. シェルユーティリティと一致させるためにはもう1処理行ってください.

    • Some internal code cleanup.


  • File::Copy upgraded to version 2.09

    File::Copy はバージョン 2.09 にアップグレードされました.

    • Copying a file onto itself used to fail.


    • Moving a file between file systems now preserves the access and modification time stamps

      ファイルシステムをまたぐファイルの移動はアクセス及び更新時間を 維持するようになりました.

  • File::Find upgraded to version 1.10

    File::Find はバージョン 1.10 にアップグレードされました.

    • Win32 portability fixes

      Win32 での可搬性を修正しました.

    • Enhanced documentation


  • File::Glob upgraded to version 1.05

    File::Glob はバージョン 1.05 にアップグレードされました.

    • Internal cleanup


  • File::Path upgraded to version 1.08

    File::Path はバージョン 1.08 にアップグレードされました.

    • mkpath now preserves errno when mkdir fails

      mkpathmkdir の失敗時に errno を残すようになりました.

  • File::Spec upgraded to version 3.12

    File::Spec はバージョン 3.12 にアップグレードされました.

    • File::Spec->rootdir() now returns \ on Win32, instead of /

      Win32 において File::Spec->rootdir()/ ではなく \ を 返すようになりました.

    • $^O could sometimes become tainted. This has been fixed.

      $^O はときどき汚染されています. これは修正されました.

    • canonpath on Win32 now collapses foo/.. (or foo\..) sections correctly, rather than doing the "misguided" work it was previously doing. Note that canonpath on Unix still does not collapse these sections, as doing so would be incorrect.

      Win32 において canonpathfoo/.. (もしくは foo\..) の部分を これまで行っていた"誤った"動作を起こすのではなくちゃんと壊すように なりました. Unix での canonpath はこれが誤ったものとしても 引き続きこれらの部分を取り壊しません.

    • Some documentation improvements


    • Some internal code cleanup


  • FileCache upgraded to version 1.06

    FileCache はバージョン 1.06 にアップグレードされました.

    • POD formatting errors in the documentation fixed

      ドキュメントの POD フォーマットエラーの修正.

  • Filter::Simple upgraded to version 0.82

    Filter::Simple はバージョン 0.82 にアップグレードされました.

  • FindBin upgraded to version 1.47

    FindBin はバージョン 1.47 にアップグレードされました.

    • Now works better with directories where access rights are more restrictive than usual.

      普通よりアクセス制限のかかっているディレクトリでも よりよく動作するようになりました.

  • GDBM_File upgraded to version 1.08

    GDBM_File はバージョン 1.08 にアップグレードされました.

    • Internal cleanup


  • Getopt::Long upgraded to version 2.35

    Getopt::Long はバージョン 2.35 にアップグレードされました.

    • prefix_pattern has now been complemented by a new configuration option long_prefix_pattern that allows the user to specify what prefix patterns should have long option style semantics applied.

      prefix_pattern はユーザにどのプレフィックスパターンに ロングオプションスタイルのセマンティクスを適用させるかを 指定させるための設定オプション long_prefix_pattern によって 補完されるようになりました.

    • Options can now take multiple values at once (experimental)

      オプションは一度に複数の値をとれるようになりました(実験的; experimental).

    • Various bug fixes


  • if upgraded to version 0.05

    if はバージョン 0.05 にアップグレードされました.

    • Give more meaningful error messages from if when invoked with a condition in list context.

      リストコンテキストで条件句と共に飛ばれたときに より意味のあるエラーメッセージを if から与えるようになりました.

    • Restore backwards compatibility with earlier versions of perl

      以前のバージョンの perl との後方互換を復元しました.

  • IO upgraded to version 1.22

    IO はバージョン 1.22 にアップグレードされました.

    • Enhanced documentation


    • Internal cleanup


  • IPC::Open2 upgraded to version 1.02

    IPC::Open2 はバージョン 1.012 にアップグレードされました.

    • Enhanced documentation


  • IPC::Open3 upgraded to version 1.02

    IPC::Open3 はバージョン 1.02 にアップグレードされました.

    • Enhanced documentation


  • List::Util upgraded to version 1.18 (was 1.14)

    List::Util はバージョン 1.18 にアップグレードされました (前は 1.14 でした).

    • Fix pure-perl version of refaddr to avoid blessing an un-blessed reference

      refaddr のpure-perl 版で bless されていないリファレンスを bless しないように修正.

    • Use XSLoader for faster loading

      ロードの高速化に XSLoader を使用.

    • Fixed various memory leaks


    • Internal cleanup and portability fixes


  • Math::Complex upgraded to version 1.35

    Math::Complex はバージョン 1.35 にアップグレードされました.

    • atan2(0, i) now works, as do all the (computable) complex argument cases

      atan2(0, i) は全ての(計算可能な)複素数引数の場合において動作します.

    • Fixes for certain bugs in make and emake

      make 及び emake のいくつかのバグを修正.

    • Support returning the kth root directly


    • Support [2,-3pi/8] in emake

      emake[2,-3pi/8] をサポート.

    • Support inf for make/emake

      make/emakeinf のサポート.

    • Document make/emake more visibly

      make/emake のドキュメントをより明白に.

  • Math::Trig upgraded to version 1.03

    Math::Trig はバージョン 1.03 にアップグレードされました.

    • Add more great circle routines: great_circle_waypoint and great_circle_destination

      よりすばらしい周期関数の追加: great_circle_waypoint 及び great_circle_destination

  • MIME::Base64 upgraded to version 3.07

    MIME::Base64 はバージョン 3.07 にアップグレードされました.

    • Use XSLoader for faster loading

      ロードの高速化に XSLoader を使用.

    • Enhanced documentation


    • Internal cleanup


  • NDBM_File upgraded to version 1.06

    NDBM_File はバージョン 1.06 にアップグレードされました.

    • Enhanced documentation


  • ODBM_File upgraded to version 1.06

    ODBM_File はバージョン 1.06 にアップグレードされました.

    • Documentation typo fixed


    • Internal cleanup


  • Opcode upgraded to version 1.06

    Opcode はバージョン 1.06 にアップグレードされました.

    • Enhanced documentation


    • Internal cleanup


  • open upgraded to version 1.05

    open はバージョン 1.05 にアップグレードされました.

    • Enhanced documentation


  • overload upgraded to version 1.04

    overload はバージョン 1.04 にアップグレードされました.

    • Enhanced documentation


  • PerlIO upgraded to version 1.04

    PerlIO はバージョン 1.04 にアップグレードされました.

    • PerlIO::via iterate over layers properly now

      PerlIO::via はレイヤを適切に反復(iterate)するようになりました.

    • PerlIO::scalar understands $/ = "" now

      PerlIO::scalar$/ = "" を理解するようになりました.

    • encoding(utf-8-strict) with partial characters now works

      部分的な文字に対する encoding(utf-8-strict) が動作するようになりました.

    • Enhanced documentation


    • Internal cleanup


  • Pod::Functions upgraded to version 1.03

    Pod::Functions はバージョン 1.03 にアップグレードされました.

    • Documentation typos fixed


  • Pod::Html upgraded to version 1.0504

    Pod::Html はバージョン 1.0504 にアップグレードされました.

    • HTML output will now correctly link to =items on the same page, and should be valid XHTML.

      HTML 出力において同じページ内の =item に正しく リンクするようになりました. また, 正しい(valid)XHTMLに なります.

    • Variable names are recognized as intended


    • Documentation typos fixed


  • Pod::Parser upgraded to version 1.32

    Pod::Parser はバージョン 1.32 にアップグレードされました.

    • Allow files that start with =head on the first line

      はじめの行が =head から始まるファイルを許可します.

    • Win32 portability fix

      Win32 での可搬性を修正しました.

    • Exit status of pod2usage fixed

      pod2usage の終了ステータスを修正.

    • New -noperldoc switch for pod2usage

      pod2usage に新しく -noperldoc スイッチが追加されました.

    • Arbitrary URL schemes now allowed

      任意の URL スキーマは許可されます.

    • Documentation typos fixed


  • POSIX upgraded to version 1.09

    POSIX はバージョン 1.09 にアップグレードされました.

    • Documentation typos fixed


    • Internal cleanup


  • re upgraded to version 0.05

    re はバージョン 0.05 にアップグレードされました.

    • Documentation typo fixed


  • Safe upgraded to version 2.12

    Safe はバージョン 2.12 にアップグレードされました.

    • Minor documentation enhancement


  • SDBM_File upgraded to version 1.05

    SDBM_File はバージョン 1.05 にアップグレードされました.

    • Documentation typo fixed


    • Internal cleanup


  • Socket upgraded to version 1.78

    Socket はバージョン 1.78 にアップグレードされました.

    • Internal cleanup


  • Storable upgraded to version 2.15

    Storable はバージョン 2.15 にアップグレードされました.

    • This includes the STORABLE_attach hook functionality added by Adam Kennedy, and more frugal memory requirements when storing under ithreads, by using the ithreads cloning tracking code.

      Adam Kennedy によって追加された STORABLE_attach フック 機能を含みます. また ithreads において ithreads のクローン 追跡コードを利用することでメモリを倹約するようになりました.

  • Switch upgraded to version 2.10_01

    Switch はバージョン 2.10_01 にアップグレードされました.

    • Documentation typos fixed


  • Sys::Syslog upgraded to version 0.13

    Sys::Syslog はバージョン 0.13 にアップグレードされました.

    • Now provides numeric macros and meaningful Exporter tags.

      数値のマクロや意味のある Exporter タグを提供するようになりました.

    • No longer uses Sys::Hostname as it may provide useless values in unconfigured network environments, so instead uses INADDR_LOOPBACK directly.

      ネットワーク環境が設定されていない環境で使用できる値を返さないことが あることから Sys::Hostname を使わなくなりました. かわりに INADDR_LOOPBACK を直接つかいます.

    • syslog() now uses local timestamp.

      syslog() はローカルタイムスタンプを使うようになります.

    • setlogmask() now behaves like its C counterpart.

      setlogmask() は C の対応する関数のように振る舞うようになります.

    • setlogsock() will now croak() as documented.

      setlogsock()croak() として書かれます.

    • Improved error and warnings messages.


    • Improved documentation.


  • Term::ANSIColor upgraded to version 1.10

    Term::ANSIColor はバージョン 1.10 にアップグレードされました.

    • Fixes a bug in colored when $EACHLINE is set that caused it to not color lines consisting solely of 0 (literal zero).

      colored において, $EACHLINE が設定されているときに 単独の0(リテラルの0)からなる行に色を付けれないバグの修正.

    • Improved tests.


  • Term::ReadLine upgraded to version 1.02

    Term::ReadLine はバージョン 1.02 にアップグレードされました.

    • Documentation tweaks


  • Test::Harness upgraded to version 2.56 (was 2.48)

    Test::Harness はバージョン 2.56 にアップグレードされました (前は 2.48 でした).

    • The Test::Harness timer is now off by default.

      Test::Harness タイマーはデフォルトでオフになりました.

    • Now shows elapsed time in milliseconds.


    • Various bug fixes


  • Test::Simple upgraded to version 0.62 (was 0.54)

    Test::Simple はバージョン 0.62 にアップグレードされました (前は 0.54 でした).

    • is_deeply() no longer fails to work for many cases

      is_deeply() は多くの場合失敗します.

    • Various minor bug fixes


    • Documentation enhancements


  • Text::Tabs upgraded to version 2005.0824

    Text::Tabs はバージョン 2005.0824 にアップグレードされました.

    • Provides a faster implementation of expand

      expand の高速な実装の提供.

  • Text::Wrap upgraded to version 2005.082401

    Text::Wrap はバージョン 2005.082401 にアップグレードされました.

    • Adds $Text::Wrap::separator2, which allows you to preserve existing newlines but add line-breaks with some other string.

      $Text::Wrap::separator2 の追加. 他の文字列で line-break を加えても 既存の改行を保存できるようになります.

  • threads upgraded to version 1.07

    threads はバージョン 1.07 にアップグレードされました.

    • threads will now honour no warnings 'threads'

      threadsno warnings 'threads' を守るようになりました.

    • A thread's interpreter is now freed after $t->join() rather than after undef $t, which should fix some ithreads memory leaks. (Fixed by Dave Mitchell)

      スレッドのインタプリタは undef $t の後ではなく $t->join() の後に 解放されるようになりました. これにより ithreads でのいくつかの メモリリークが修正されました(Dave Mitchellによってなされました).

    • Some documentation typo fixes.


  • threads::shared upgraded to version 0.94

    threads::shared はバージョン 0.94 にアップグレードされました.

    • Documentation changes only


    • Note: An improved implementation of threads::shared is available on CPAN - this will be merged into 5.8.9 if it proves stable.

      補足: threads::shared の改善された実装は CPAN で入手可能です - 安定していることが確認されれば 5.8.9 で取り込まれるでしょう.

  • Tie::Hash upgraded to version 1.02

    Tie::Hash はバージョン 1.02 にアップグレードされました.

    • Documentation typo fixed


  • Time::HiRes upgraded to version 1.86 (was 1.66)

    Time::HiRes はバージョン 1.86 にアップグレードされました (前は 1.66 でした).

    • clock_nanosleep() and clock() functions added

      clock_nanosleep()clock() の機能が追加されました.

    • Support for the POSIX clock_gettime() and clock_getres() has been added

      POSIX clock_gettime() 及び clock_getres() が追加されました.

    • Return undef or an empty list if the C gettimeofday() function fails

      gettimeofday() が失敗したときに undef か空のリストを返すようになりました.

    • Improved nanosleep detection

      nanosleep の検出の改善.

    • Internal cleanup


    • Enhanced documentation


  • Unicode::Collate upgraded to version 0.52

    Unicode::Collate はバージョン 0.52 にアップグレードされました.

    • Now implements UCA Revision 14 (based on Unicode 4.1.0).

      UCA Revision 14 (Unicode 4.1.0 ベース) の実装.

    • Unicode::Collate-new> method no longer overwrites user's $_

      Unicode::Collate-new> メソッドでユーザの $_ を上書きしなく なりました.

    • Enhanced documentation


  • Unicode::UCD upgraded to version 0.24

    Unicode::UCD はバージョン 0.24 にアップグレードされました.

    • Documentation typos fixed


  • User::grent upgraded to version 1.01

    User::grent はバージョン 1.01 にアップグレードされました.

    • Documentation typo fixed


  • utf8 upgraded to version 1.06

    utf8 はバージョン 1.06 にアップグレードされました.

    • Documentation typos fixed


  • vmsish upgraded to version 1.02

    vmsish はバージョン 1.02 にアップグレードされました.

    • Documentation typos fixed


  • warnings upgraded to version 1.05

    warnings はバージョン 1.05 にアップグレードされました.

    • Gentler messing with Carp:: internals

      内部で Carp:: を使うようになりました. .

    • Internal cleanup


    • Documentation update


  • Win32 upgraded to version 0.2601

    Win32 はバージョン 0.2601 にアップグレードされました.

    • Provides Windows Vista support to Win32::GetOSName

      Win32::GetOSName での Windows Vista サポートの提供.

    • Documentation enhancements


  • XS::Typemap upgraded to version 0.02

    XS::Typemap はバージョン 0.02 にアップグレードされました.

    • Internal cleanup


Utility Changes ユーティリティの変更点

h2xs enhancements h2xs の強化

h2xs implements new option --use-xsloader to force use of XSLoader even in backwards compatible modules.

h2xs は後方互換モジュールであっても XSLoader の使用を 強制する新しいオプション --use-xsloader を実装しました.

The handling of authors' names that had apostrophes has been fixed.


Any enums with negative values are now skipped.


perlivp enhancements perlivp の強化

perlivp implements new option -a and will not check for *.ph files by default any more. Use the -a option to run all tests.

perlivp は新しいオプション -a を実装しました. そしてデフォルトでは *.ph ファイルはチェックしなくなります. すべてのテストを走らせる ためには -a オプションを使うようにしてください.

New Documentation 新しいドキュメント

The perlglossary manpage is a glossary of terms used in the Perl documentation, technical and otherwise, kindly provided by O'Reilly Media, inc.

perlglossary マニュアルページは Perl で使われる技術的な単語その他の 用語集です. 親切な O'Reilly Media, inc. から提供されました.

Performance Enhancements パフォーマンスの強化

  • Weak reference creation is now O(1) rather than O(n), courtesy of Nicholas Clark. Weak reference deletion remains O(n), but if deletion only happens at program exit, it may be skipped completely.

    Nicholas Clark の好意により, 弱(Weak)リファレンスは O(n) ではなく O(1) で生成できるようになりました. 弱リファレンスの削除は 引き続き O(n) ですが, 削除はプログラムの終了時にのみおこるのであれば これは完全にスキップされるでしょう.

  • Salvador Fandiño provided improvements to reduce the memory usage of sort and to speed up some cases.

    Salvador Fandiño が sort におけるメモリ消費削減といくつかの 状況でのスピードアップとの向上を提供してくれました.

  • Jarkko Hietaniemi and Andy Lester worked to mark as much data as possible in the C source files as static, to increase the proportion of the executable file that the operating system can share between process, and thus reduce real memory usage on multi-user systems.

    実行ファイルの中でオペレーティングシステムがプロセス間で共有できる 割合を増やすために, そしてマルチユーザシステムで実メモリの使用量を 減らすために Jarkko Hietaniemi と Andy Lester は C ソースの中で 出来るだけ多くのデータを static とマークするように動いてくれました.

Installation and Configuration Improvements インストールとコンフィグレーションの改善

Parallel makes should work properly now, although there may still be problems if make test is instructed to run in parallel.

平行(parallel) make は正常に動作するようになっているでしょう. make test を平行に実行する事には問題が残りますが.

Building with Borland's compilers on Win32 should work more smoothly. In particular Steve Hay has worked to side step many warnings emitted by their compilers and at least one C compiler internal error.

Win32 において Borland のコンパイラ(群)でのビルドはよりスムーズに なりました. 特に Steve Hay はそれらのコンパイラが発する警告の減少 と, そのうちの少なくとも1つで発生した内部エラーの除去に取り組んで くれました.

Configure will now detect clearenv and unsetenv, thanks to a patch from Alan Burlison. It will also probe for futimes and whether sprintf correctly returns the length of the formatted string, which will both be used in perl 5.8.9.

Alan Burlison からのパッチのおかげで Configureclearenvunsetenv を検出するようになりました. また, futimes の検出と sprintf が整形した文字列の長さを正しく返すかどうかの検出も行いますが, これは perl 5.8.9 で使われます.

There are improved hints for next-3.0, vmesa, IX, Darwin, Solaris, Linux, DEC/OSF, HP-UX and MPE/iX

next-3.0, vmesa, IX, Darwin, Solaris, Linux, DEC/OSF, HP-UX および MPE/iX でのヒントの改善.

Perl extensions on Windows now can be statically built into the Perl DLL, thanks to a work by Vadim Konovalov. (This improvement was actually in 5.8.7, but was accidentally omitted from perl587delta).

Vadim Konovalov の働きのおかげで Windows において Perl エクステンションを Perl DLL にスタティックにビルドできるようになりました. (これは 実際には 5.8.7 で改善されていますが手違いで perl587delta に 記載されていませんでした.)

Selected Bug Fixes バグ修正のピックアップ

no warnings 'category' works correctly with -w -w を使っていても no warnings 'category' が正しく機能するようになりました

Previously when running with warnings enabled globally via -w, selective disabling of specific warning categories would actually turn off all warnings. This is now fixed; now no warnings 'io'; will only turn off warnings in the io class. Previously it would erroneously turn off all warnings.

これまで -w でグローバルに警告を有効にして実行していると 特定の警告カテゴリを選択して無効にしたときに全ての警告を無効に してしまっていました. これは修正されました; 現在では no warnings 'io';io クラスでの警告のみを無効にします. これまでは間違って全ての 警告を無効にしてしまっていました.

This bug fix may cause some programs to start correctly issuing warnings.


Remove over-optimisation 過剰な最適化の除去

Perl 5.8.4 introduced a change so that assignments of undef to a scalar, or of an empty list to an array or a hash, were optimised away. As this could cause problems when goto jumps were involved, this change has been backed out.

Perl 5.8.4 はスカラーへの undef の代入, 配列やハッシュへの 空のリストの代入を最適化により除去する変更を施しました. goto ジャンプを伴うときにはこれが問題となることがあったため, この処理は取り消されました.

sprintf() fixes sprintf() の修正

Using the sprintf() function with some formats could lead to a buffer overflow in some specific cases. This has been fixed, along with several other bugs, notably in bounds checking.

いくつかのフォーマットで sprintf() 関数を使うと特定の条件下で バッファオーバーフローを起こすことがありましたが, 他のいくつかの バグと共に, 特に境界チェックと共に修正されました.

In related fixes, it was possible for badly written code that did not follow the documentation of Sys::Syslog to have formatting vulnerabilities. Sys::Syslog has been changed to protect people from poor quality third party code.

関連する修正として, Sys::Syslog のドキュメントに従っていない 粗悪なコードでフォーマット文字列の脆弱性を持つことがありました. Sys::Syslog は質の低いサードパーティ製のコードから人々を保護 するように修正されました.

Debugger and Unicode slowdown デバッガとUnicodeでの速度低下

It had been reported that running under perl's debugger when processing Unicode data could cause unexpectedly large slowdowns. The most likely cause of this was identified and fixed by Nicholas Clark.

Unicode データの処理を perl のデバッガ上で実行すると思いがけなく 大きな速度低下が見られるとの報告がありました. これに相当する原因は Nicholas Clark によって確認及び修正されました.

Smaller fixes 小さな修正たち

  • FindBin now works better with directories where access rights are more restrictive than usual.

    FindBin は普通よりアクセス制限のかかっているディレクトリでも よりよく動作するようになりました.

  • Several memory leaks in ithreads were closed. An improved implementation of threads::shared is available on CPAN - this will be merged into 5.8.9 if it proves stable.

    ithreads におけるいくつかのメモリリークが修正されました. threads::shared の改善された実装は CPAN で入手可能です - 安定していることが確認されれば 5.8.9 で取り込まれるでしょう.

  • Trailing spaces are now trimmed from $! and $^E.

    $! 及び $^E から末尾の空白が取り除かれました.

  • Operations that require perl to read a process' list of groups, such as reads of $( and $), now dynamically allocate memory rather than using a fixed sized array. The fixed size array could cause C stack exhaustion on systems configured to use large numbers of groups.

    perl に対してプロセスのグループのリストを要求する様な操作, 例えば $($), は固定サイズの配列ではなく動的に確保したメモリを 使うようになりました. 固定サイズの配列では多くのグループを使うように 設定されているシステムで C スタックの枯渇を引き起こすことがありました.

  • PerlIO::scalar now works better with non-default $/ settings.

    PerlIO::scalar はデフォルトではない $/ でもよりよく 動作するようになりました.

  • You can now use the x operator to repeat a qw// list. This used to raise a syntax error.

    qw// リストを繰り返すために x 演算子を使うことが出来るように なりました. これは以前は構文エラーを引き起こしていました.

  • The debugger now traces correctly execution in eval("")uated code that contains #line directives.

    デバッガは #line ディレクティブを含むコードの eval("") を正しく 追跡するようになりました.

  • The value of the open pragma is no longer ignored for three-argument opens.

    open プラグマの値は3引数のopenで無視されなくなりました.

  • The optimisation of for (reverse @a) introduced in perl 5.8.6 could misbehave when the array had undefined elements and was used in LVALUE context. Dave Mitchell provided a fix.

    perl 5.8.6 で導入された for (reverse @a) の最適化は未定義の配列で かつ LVALUE コンテキストで使われた時に振る舞いを誤る事がありました. Dave Mitchell により修正が提供されました.

  • Some case insensitive matches between UTF-8 encoded data and 8 bit regexps, and vice versa, could give malformed character warnings. These have been fixed by Dave Mitchell and Yves Orton.

    UTF-8 エンコードされたデータと 8 bit 正規表現との, 及びその逆での 大文字小文字を区別しない(case insensitive)いくつかのマッチで 不正な文字(malformed character)警告が発生していました. これらは Dave Mitchell と Yves Orton によって修正されました.

  • lcfirst and ucfirst could corrupt the string for certain cases where the length UTF-8 encoding of the string in lower case, upper case or title case differed. This was fixed by Nicholas Clark.

    lcfirst 及び ucfirst は大文字, 小文字, タイトル文字(title case) で UTF-8 エンコーディング時の長さが変わるいくつかのケースにおいて 壊れる頃がありました. これは Nicholas Clark によって修正されました.

  • Perl will now use the C library calls unsetenv and clearenv if present to delete keys from %ENV and delete %ENV entirely, thanks to a patch from Alan Burlison.

    C ライブラリコールの unsetenv 及び clearenv を それが提供されているときには %ENV からのキーの削除や %ENV の完全な削除で使うようになります. Alan Burlison からのパッチによるものです.

New or Changed Diagnostics 新しく追加された及び変更された診断メッセージ

Attempt to set length of freed array

This is a new warning, produced in situations such as this:

『解放された配列に長さを設定しようとしました』 これは新しい警告です. 次のような状況で発生します:

    $r = do {my @a; \$#a};
    $$r = 503;

Non-string passed as bitmask

This is a new warning, produced when number has been passed as a argument to select(), instead of a bitmask.

『文字列でないものがビットマスクとして渡されました』 これは新しい警告です. select() の引数に対してビットマスクではなく 数値が渡されたときに発生します.

    # Wrong, will now warn
    $rin = fileno(STDIN);
    ($nfound,$timeleft) = select($rout=$rin, undef, undef, $timeout);
    # Should be
    $rin = '';
    vec($rin,fileno(STDIN),1) = 1;
    ($nfound,$timeleft) = select($rout=$rin, undef, undef, $timeout);

Search pattern not terminated or ternary operator parsed as search pattern

This syntax error indicates that the lexer couldn't find the final delimiter of a ?PATTERN? construct. Mentioning the ternary operator in this error message makes it easier to diagnose syntax errors.

『検索パターンが終了していないか3項演算子が検索パターンとして 検出されました』 この構文エラーは ?PATTERN? を構成する終わりの 区切り子(delimiter)を字句解析機が見つけられなかったことを意味します. ここで3項演算子をあげることで構文の確認を行いやすくしています.

Changed Internals 内部処理の変更

There has been a fair amount of refactoring of the C source code, partly to make it tidier and more maintainable. The resulting object code and the perl binary may well be smaller than 5.8.7, in particular due to a change contributed by Dave Mitchell which reworked the warnings code to be significantly smaller. Apart from being smaller and possibly faster, there should be no user-detectable changes.

C ソースコード上で, 一部は整頓のためとメンテナンス性の向上の ためにですが, かなりの量のリファクタリングが行われました. 結果として オブジェクトコードと perl バイナリは 5.8.7 より小さくなりました. 特に, Dave Mitchell によって寄稿された warnings のコードが著しく 小さくなりました. 小さくなったことと速くなった事は別として, ユーザが認識すべき変更点はありません.

Andy Lester supplied many improvements to determine which function parameters and local variables could actually be declared const to the C compiler. Steve Peters provided new *_set macros and reworked the core to use these rather than assigning to macros in LVALUE context.

Andy Lester は C コンパイラに対して実質 const として宣言 されるべき関数パラメータとローカル変数の改善を多く提供してくれました. Steve Peters は新しい *_set マクロを提供し, LVALUE コンテキストにおいて マクロに代入するのでなくこれを使うようにコアの書き換えを行って くれました.

Dave Mitchell improved the lexer debugging output under -DT

Dave Mitchell は -DT における字句解析機のデバッグ出力を 改善してくれました.

Nicholas Clark changed the string buffer allocation so that it is now rounded up to the next multiple of 4 (or 8 on platforms with 64 bit pointers). This should reduce the number of calls to realloc without actually using any extra memory.

Nicholas Clark は文字列バッファの確保を次の4の倍数(64bitポインタの プラットホームでは8の倍数)に丸めるように変更しました. これにより 実質余分なメモリを使うことなく realloc の回数を削減できます.

The HV's array of HE*s is now allocated at the correct (minimal) size, thanks to another change by Nicholas Clark. Compile with -DPERL_USE_LARGE_HV_ALLOC to use the old, sloppier, default.

HV のもつ HE* の配列は適切な(最小の)サイズを確保するように なりました. Nicholas Clark のまた別の修正によるものです. -DPERL_USE_LARGE_HV_ALLOC をつけてコンパイルすることで これまでのずさんで怠惰な実装を使うことも出来ます.

For XS or embedding debugging purposes, if perl is compiled with -DDEBUG_LEAKING_SCALARS_FORK_DUMP in addition to -DDEBUG_LEAKING_SCALARS then a child process is forked just before global destruction, which is used to display the values of any scalars found to have leaked at the end of global destruction. Without this, the scalars have already been freed sufficiently at the point of detection that it is impossible to produce any meaningful dump of their contents. This feature was implemented by the indefatigable Nicholas Clark, based on an idea by Mike Giroux.

XS や埋め込みデバッグ用に, perl が -DDEBUG_LEAKING_SCALARS に 加えて -DDEBUG_LEAKING_SCALARS_FORK_DUMP もつけてコンパイル することでグローバルデストラクションの直前に子プロセスを fork させる事が出来ます. これによりグローバルデストラクションの終了時に 漏れていた任意のスカラーの値を出力することができます. これが ない場合には, スカラーは検出した地点では既に十分に解放されていて, そこでは意味のあるダンプは出力できないでしょう. この機能は Mike Giroux によるアイデアを根気のいい Nicholas Clark が実装 したものです.

Platform Specific Problems プラットホーム固有の問題

The optimiser on HP-UX 11.23 (Itanium 2) is currently partly disabled (scaled down to +O1) when using HP C-ANSI-C; the cause of problems at higher optimisation levels is still unclear.

HP-UX 11.23 (Itanium 2) 上の最適化は HP C-ANSI-C を使用している場合に 現在部分的に無効にされています(+O1 にスケールダウン); これは 高レベルの最適化による問題の原因がまだ不明瞭なためです.

There are a handful of remaining test failures on VMS, mostly due to test fixes and minor module tweaks with too many dependencies to integrate into this release from the development stream, where they have all been corrected. The following is a list of expected failures with the patch number of the fix where that is known:

VMS において失敗するテストがいくつかあります. これはこのリリースにおいて, 開発ストリームから修正された分の統合のために, 多すぎる依存関係と共にテストの修正や小さなモジュールの修正が 行われたためです. 以下に既知の失敗と, それに気付いて修正された パッチ番号を並べておきます.

    ext/Devel/PPPort/t/ppphtest.t  #26913
    ext/List/Util/t/p_tainted.t    #26912
    lib/ExtUtils/t/PL_FILES.t      #26813
    lib/ExtUtils/t/basic.t         #26813

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 There may also be information at, the Perl Home Page.

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

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 to be analysed by the Perl porting team. You can browse and search the Perl 5 bugs at

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

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 には著作権情報があります.



山科 氷魚 (YAMASHINA Hio) <>