名前

perldelta - what is new for perl v5.24.1

perl5241delta - perl v5.24.1 での変更点

説明

This document describes differences between the 5.24.0 release and the 5.24.1 release.

この文書は 5.24.0 リリースと 5.24.1 リリースの変更点を記述しています。

If you are upgrading from an earlier release such as 5.22.0, first read perl5240delta, which describes differences between 5.22.0 and 5.24.0.

5.22.0 のような以前のリリースから更新する場合は、まず 5.22.0 と 5.24.0 の違いについて記述している perl5240delta を読んでください。

セキュリティ

-Di switch is now required for PerlIO debugging output

(PerlIO デバッグ出力には -Di オプションが必要になりました)

Previously PerlIO debugging output would be sent to the file specified by the PERLIO_DEBUG environment variable if perl wasn't running setuid and the -T or -t switches hadn't been parsed yet.

以前は、perl が setuid されておらず -T-t オプションがまだ 渡されていない場合は、PerlIO デバッグ出力は PERLIO_DEBUG 環境変数で 指定されたファイルに出力されていました。

If perl performed output at a point where it hadn't yet parsed its switches this could result in perl creating or overwriting the file named by PERLIO_DEBUG even when the -T switch had been supplied.

これらのオプションがまだパースされていない時点で perl が出力を行うと、 -T オプションが指定されているときでも perl が PERLIO_DEBUG の名前の ファイルを作成したり上書きしたりしていました。

Perl now requires the -Di switch to produce PerlIO debugging output. By default this is written to stderr, but can optionally be redirected to a file by setting the PERLIO_DEBUG environment variable.

PerlIO デバッグ出力を作成するためには -Di オプションが必要になりました。 デフォルトではこれは stderr に書かれますが、PERLIO_DEBUG 環境変数を 設定することでファイルにリダイレクトすることも出来ます。

If perl is running setuid or the -T switch was supplied PERLIO_DEBUG is ignored and the debugging output is sent to stderr as for any other -D switch.

perl が setuid されていたり -T オプションが指定されている場合は、 PERLIO_DEBUG は無視され、デバッグ出力は他の -D オプションと同様 stderr に出力されます。

Core modules and tools no longer search "." for optional modules

(コアモジュールとツールはオプションのモジュールを "." から探さなくなりました)

The tools and many modules supplied in core no longer search the default current directory entry in @INC for optional modules. For example, Storable will remove the final "." from @INC before trying to load Log::Agent.

コアで適用されているツールや多くのモジュールは、もはやオプションのモジュールを @INC のデフォルトのカレントディレクトリエントリを 探さなくなりました。 例えば、StorableLog::Agent を読み込もうとする前に @INC の末尾の "." を取り除きます。

This prevents an attacker injecting an optional module into a process run by another user where the current directory is writable by the attacker, e.g. the /tmp directory.

これにより、攻撃者によって書き込み可能なディレクトリ (/tmp など) を カレントディレクトリとして実行されているプロセスに、攻撃者がオプションの モジュールを注入するのを防ぎます。

In most cases this removal should not cause problems, but difficulties were encountered with base, which treats every module name supplied as optional. These difficulties have not yet been resolved, so for this release there are no changes to base. We hope to have a fix for base in Perl 5.24.2.

ほとんどの場合、この除去によって問題は起こらないはずですが、指定された全ての モジュール名をオプションとして扱う base では問題があります。 この問題はまだ解決していないので、このリリースでは base は 変更されていません。 私たちは Perl 5.24.2 で base を修正したいと考えています。

To protect your own code from this attack, either remove the default "." entry from @INC at the start of your script, so:

自分自身のコードをこの攻撃から守るには、スクリプトの先頭で @INC から デフォルトの "." エントリを取り除く、つまり:

  #!/usr/bin/perl
  use strict;
  ...

becomes:

これを:

  #!/usr/bin/perl
  BEGIN { pop @INC if $INC[-1] eq '.' }
  use strict;
  ...

or for modules, remove "." from a localized @INC, so:

のようにするか、モジュールに対しては、ローカル化された @INC から "." を 取り除く、つまり:

  my $can_foo = eval { require Foo; }

becomes:

これを以下のようにします:

  my $can_foo = eval {
      local @INC = @INC;
      pop @INC if $INC[-1] eq '.';
      require Foo;
  };

互換性のない変更

Other than the security changes above there are no changes intentionally incompatible with Perl 5.24.0. If any exist, they are bugs, and we request that you submit a report. See "Reporting Bugs" below.

前述のセキュリティ上の変更を除いて、故意に 5.24.0 から互換性が なくなるようにした変更はありません。 もし 5.24.0 との互換性がなければ、それはバグですので、報告をお願いします。 以下の "Reporting Bugs" を参照してください。

モジュールとプラグマ

更新されたモジュールとプラグマ

  • Archive::Tar has been upgraded from version 2.04 to 2.04_01.

    Archive::Tar はバージョン 2.04 から 2.04_01 に更新されました。

  • bignum has been upgraded from version 0.42 to 0.42_01.

    bignum はバージョン 0.42 から 0.42_01 に更新されました。

  • CPAN has been upgraded from version 2.11 to 2.11_01.

    CPAN はバージョン 2.11 から 2.11_01 に更新されました。

  • Digest has been upgraded from version 1.17 to 1.17_01.

    Digest はバージョン 1.17 から 1.17_01 に更新されました。

  • Digest::SHA has been upgraded from version 5.95 to 5.95_01.

    Digest::SHA はバージョン 5.95 から 5.95_01 に更新されました。

  • Encode has been upgraded from version 2.80 to 2.80_01.

    Encode はバージョン 2.80 から 2.80_01 に更新されました。

  • ExtUtils::MakeMaker has been upgraded from version 7.10_01 to 7.10_02.

    ExtUtils::MakeMaker はバージョン 7.10_01 から 7.10_02 に更新されました。

  • File::Fetch has been upgraded from version 0.48 to 0.48_01.

    File::Fetch はバージョン 0.48 から 0.48_01 に更新されました。

  • File::Spec has been upgraded from version 3.63 to 3.63_01.

    File::Spec はバージョン 3.63 から 3.63_01 に更新されました。

  • HTTP::Tiny has been upgraded from version 0.056 to 0.056_001.

    HTTP::Tiny はバージョン 0.056 から 0.056_001 に更新されました。

  • IO has been upgraded from version 1.36 to 1.36_01.

    IO はバージョン 1.36 から 1.36_01 に更新されました。

  • The IO-Compress modules have been upgraded from version 2.069 to 2.069_001.

    IO-Compress モジュールはバージョン 2.069 から 2.069_001 に更新されました。

  • IPC::Cmd has been upgraded from version 0.92 to 0.92_01.

    IPC::Cmd はバージョン 0.92 から 0.92_01 に更新されました。

  • JSON::PP has been upgraded from version 2.27300 to 2.27300_01.

    JSON::PP はバージョン 2.27300 から 2.27300_01 に更新されました。

  • Locale::Maketext has been upgraded from version 1.26 to 1.26_01.

    Locale::Maketext はバージョン 1.26 から 1.26_01 に更新されました。

  • Locale::Maketext::Simple has been upgraded from version 0.21 to 0.21_01.

    Locale::Maketext::Simple はバージョン 0.21 から 0.21_01 に更新されました。

  • Memoize has been upgraded from version 1.03 to 1.03_01.

    Memoize はバージョン 1.03 から 1.03_01 に更新されました。

  • Module::CoreList has been upgraded from version 5.20160506 to 5.20170114_24.

    Module::CoreList はバージョン 5.20160506 から 5.20170114_24 に更新されました。

  • Net::Ping has been upgraded from version 2.43 to 2.43_01.

    Net::Ping はバージョン 2.43 から 2.43_01 に更新されました。

  • Parse::CPAN::Meta has been upgraded from version 1.4417 to 1.4417_001.

    Parse::CPAN::Meta はバージョン 1.4417 から 1.4417_001 に更新されました。

  • Pod::Html has been upgraded from version 1.22 to 1.2201.

    Pod::Html はバージョン 1.22 から 1.2201 に更新されました。

  • Pod::Perldoc has been upgraded from version 3.25_02 to 3.25_03.

    Pod::Perldoc はバージョン 3.25_02 から 3.25_03 に更新されました。

  • Storable has been upgraded from version 2.56 to 2.56_01.

    Storable はバージョン 2.56 から 2.56_01 に更新されました。

  • Sys::Syslog has been upgraded from version 0.33 to 0.33_01.

    Sys::Syslog はバージョン 0.33 から 0.33_01 に更新されました。

  • Test has been upgraded from version 1.28 to 1.28_01.

    Test はバージョン 1.28 から 1.28_01 に更新されました。

  • Test::Harness has been upgraded from version 3.36 to 3.36_01.

    Test::Harness はバージョン 3.36 から 3.36_01 に更新されました。

  • XSLoader has been upgraded from version 0.21 to 0.22, fixing a security hole in which binary files could be loaded from a path outside of @INC. [perl #128528]

    XSLoader はバージョン 0.21 から 0.22 に更新されました; バイナリファイルが @INC 以外のパスから読み込まれることがある セキュリティーホールが修正されました。 [perl #128528]

文書

既存の文書の変更

perlapio

  • The documentation of PERLIO_DEBUG has been updated.

    PERLIO_DEBUG の文書が更新されました。

perlrun

  • The new -Di switch has been documented, and the documentation of PERLIO_DEBUG has been updated.

    新しい -Di オプションが文書化され、PERLIO_DEBUG の文書が更新されました。

テスト

  • A new test script, t/run/switchDx.t, has been added to test that the new -Di switch is working correctly.

    新しい -Di オプションが正しく動作するかをテストする新しい テストスクリプト t/run/switchDx.t が追加されました。

バグ修正の抜粋

  • The change to hashbang redirection introduced in Perl 5.24.0, whereby perl would redirect to another interpreter (Perl 6) if it found a hashbang path which contains "perl" followed by "6", has been reverted because it broke in cases such as #!/opt/perl64/bin/perl.

    シェバンパスに "perl" に引き続いて "6" が含まれている場合、他のインタプリタ (Perl 6) にリダイレクトするという、Perl 5.24.0 で導入された シェバンリダイレクトの変更は取り消されました; #!/opt/perl64/bin/perl のような場合に壊れるからです。

Acknowledgements

Perl 5.24.1 represents approximately 8 months of development since Perl 5.24.0 and contains approximately 8,100 lines of changes across 240 files from 18 authors.

Perl 5.24.1 は、Perl 5.24.0 以降、18 人の作者によって、 240 のファイルに約 8,100 行の変更を加えて、 約 8 months開発されてきました。

Excluding auto-generated files, documentation and release tools, there were approximately 2,200 lines of changes to 170 .pm, .t, .c and .h files.

自動生成ファイル、文書、リリースツールを除くと、170 の .pm, .t, .c, .h ファイルに約 2,200 行の変更を加えました。

Perl continues to flourish into its third decade thanks to a vibrant community of users and developers. The following people are known to have contributed the improvements that became Perl 5.24.1:

Perl は、活気のあるユーザーと開発者のコミュニティのおかげで 20 年を超えて 繁栄しています。 以下の人々が、Perl 5.24.1 になるための改良に貢献したことが分かっています:

Aaron Crane, Alex Vandiver, Aristotle Pagaltzis, Chad Granum, Chris 'BinGOs' Williams, Craig A. Berry, Father Chrysostomos, James E Keenan, Jarkko Hietaniemi, Karen Etheridge, Leon Timmermans, Matthew Horsfall, Ricardo Signes, Sawyer X, Sébastien Aperghis-Tramoni, Stevan Little, Steve Hay, Tony Cook.

The list above is almost certainly incomplete as it is automatically generated from version control history. In particular, it does not include the names of the (very much appreciated) contributors who reported issues to the Perl bug tracker.

これはバージョンコントロール履歴から自動的に生成しているので、ほぼ確実に 不完全です。 特に、Perl バグトラッカーに問題を報告をしてくれた (とてもありがたい)貢献者の 名前を含んでいません。

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.

このバージョンに含まれている変更の多くは、Perl コアに含まれている CPAN モジュール由来のものです。 私たちは Perl の発展を助けている CPAN コミュニティ全体に感謝します。

For a more complete list of all of Perl's historical contributors, please see the AUTHORS file in the Perl source distribution.

全ての Perl の歴史的な貢献者のより完全な一覧については、どうか Perl ソース 配布に含まれている AUTHORS を参照してください。

バグ報告

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 https://rt.perl.org/ . There may also be information at http://www.perl.org/ , the Perl Home Page.

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

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.

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

If the bug you are reporting has security implications which make it inappropriate to send to a publicly archived mailing list, then see "SECURITY VULNERABILITY CONTACT INFORMATION" in perlsec for details of how to report the issue.

もし報告しようとしているバグがセキュリティに関するもので、公開されている メーリングリストに送るのが不適切なものなら、 問題の報告方法の詳細について "SECURITY VULNERABILITY CONTACT INFORMATION" in perlsec を参照してください。

SEE ALSO

The Changes file for an explanation of how to view exhaustive details on what changed.

変更点の完全な詳細を見る方法については Changes ファイル。

The INSTALL file for how to build Perl.

Perl のビルド方法については INSTALL ファイル。

The README file for general stuff.

一般的なことについては README ファイル。

The Artistic and Copying files for copyright information.

著作権情報については Artistic 及び Copying ファイル。