NAME

perl5200delta - perl v5.20.0 での変更点

DESCRIPTION

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

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

コアの拡張

実験的なサブルーチンシグネチャ

引数リストをレキシカル変数に展開するための宣言的な文法です。 sub foo ($a,$b) {...} は引数の数をチェックし、引数をレキシカル変数に 設定します。 シグネチャは既にある慣用句である sub foo { my($a,$b) = @_; ... } と 等価ではありません。 シグネチャは非デフォルト機能を有効にしたときにのみ利用可能で、 実験的であるという警告が生成されます。 プロトタイプとの文法的な衝突は、シグネチャが有効の時に短いプロトタイプ文法は 無効にされることで制御されます。

詳しくは "Signatures" in perlsub を参照してください。

subprototype 属性を取るようになりました

sub を宣言または定義するとき、プロトタイプを、名前の後ろのかっこの中ではなく prototype 属性の内側に指定できるようになりました。

例えば、sub foo($$){}sub foo : prototype($$){} と書き直せます。

より一貫性のあるプロトタイプのパース

サブルーチンプロトタイプでの複数のセミコロンは許容されていて、単一の セミコロンとして扱われていました。 これが起きない場合が一つあります。 "*" または ";*" で始まるプロトタイプのサブルーチンは、裸の単語がメソッド名や サブルーチン呼び出しとして扱われるかどうかに影響します。 これは ";;;*" にも適用されるようになりました。

サブルーチンプロトタイプの内側の空白は長い間認められていたので、 sub( $ $ )sub($$) と等価ですが、今までこれはサブルーチンが パースされるときには取り除かれていました。 従って、空白は Scalar::Util::set_prototype で設定されているプロトタイプでは 認められていません でした。 これは認められるようになり、パーサは空白を取り除かなくなりました。 つまり、prototype &mysub は空白を含む元のプロトタイプそのものを 返すようになりました。

rand は一貫性のある乱数生成器を使うようになりました

以前の perl はプラットフォームに固有の乱数生成器を使っており、 libc rand(), random(), drand48() のように様々でした。

つまり、perl の乱数の品質はプラットフォームによって異なり、 Windows での rand() の 15 ビットから drand48() のある Linux のような POSIX プラットフォームでの 48 ビットまで様々でした。

perl は全てのプラットフォームで独自の内部の drand48() 実装を 使うようになりました。 これで perl の rand が暗号学的に安全になったわけではありません。 [perl #115928]

新しい slice の文法

新しい %hash{...}%array[...] の文法はキー/値 (または インデックス/値)の組のリストを返します。 "Key/Value Hash Slices" in perldata を参照してください。

実験的な接尾辞によるデリファレンス

postderef 機能が有効のとき、以下の文法的等価物が設定されます:

  $sref->$*;  # ${ $sref } と同じ  # 変数展開
  $aref->@*;  # @{ $aref } と同じ  # 変数展開
  $href->%*;  # %{ $href } と同じ
  $cref->&*;  # &{ $cref } と同じ
  $gref->**;  # *{ $gref } と同じ

  $aref->$#*; # $#{ $aref } と同じ

  $gref->*{ $slot }; # *{ $gref }{ $slot } と同じ

  $aref->@[ ... ];  # @$aref[ ... ] と同じ  # 変数展開
  $href->@{ ... };  # @$href{ ... } と同じ  # 変数展開
  $aref->%[ ... ];  # %$aref[ ... ] と同じ
  $href->%{ ... };  # %$href{ ... } と同じ

「変数展開」とマークされているものは、関連する postderef_qq 機能も 有効にされている場合にのみ展開されます。 この機能は 実験的 で、抑制しない限り、使ったときに experimental::postderef カテゴリの警告を引き起こします。

さらなる詳細については、the Postfix Dereference Syntax section of perlref を参照してください。

Unicode 6.3 に対応するようになりました

Perl は Unicode 6.3 に対応し、これと共に出荷されています (しかし、Perl は 任意の以前の Unicode リリースでも再コンパイルできます)。 Unicode 6.3 の変更の詳細な一覧は http://www.unicode.org/versions/Unicode6.3.0/ にあります。

新しい \p{Unicode} 正規表現パターン特性

これは \p{Any} の同義語で、Unicode で定義された符号位置 0 - 0x10FFFF の 集合にマッチングします。

よりよい 64 ビット対応

64 ビットプラットフォームでは、内部配列関数は 64 ビットのオフセットを 使うようになったので、メモリがあれば、Perl で 2**31 要素以上の配列を 保持できるようになりました。

正規表現エンジンは 2**31 文字以上の長さの文字列に対応しました。 [perl #112790, #116907]

関数 PerlIO_get_bufsiz, PerlIO_get_cnt, PerlIO_set_cnt, PerlIO_set_ptrcnt は 返り値と引数に int ではなく SSize_t を使うようになりました。

use locale は UTF-8 ロケールで動作するようになりました

このリリースまで、ISO 8859 のような単一バイトロケールのみが対応していました。 今回、次第に一般的になってきている複数バイト UTF-8 ロケールも対応しました。 UTF-8 ロケールは、文字集合が Unicode でエンコーディングが UTF-8 です。 このロケールでの POSIX LC_CTYPE カテゴリの操作 ((lc(), "\U" のような) 大文字小文字変換と(\w, \D, qr/[[:punct:]]/ のような)文字クラス化) は 単にロケールが有効でないかのように動作しますが、汚染ルールに従う以外は use feature 'unicode_strings' が有効であるかのように動作します。 このリリースではソートは符号位置順のままです。 [perl #56820]。

use locale はロケール機能のないシステムでコンパイルできるようになりました

以前はこれをするとプログラムがコンパイルされませんでした。 そのスコープの中ではプログラムは "C" ロケールのように振る舞います。 従ってロケールに対応しているプラットフォームのために書かれたプログラムは ロケールのないプラットフォームでも変更なしで動作します。 ロケールを "C" ロケールから変えようとすると、もちろん失敗します。

さらなるロケール初期化フォールバックオプション

Perl 起動時にロケールでエラーがあると、すぐに諦めて "C" ロケールを 使おうとしていました。 これは、"ENVIRONMENT" in perllocale で詳しく書かれているように環境変数によって 指定されたその他のロケールを使おうとするようになりました。 例えば、LC_ALLLANG の両方が設定されていて、LC_ALL ロケールの 使用に失敗すると、Perl は LANG ロケールを使うことを試みるようになり、 それが失敗した場合にのみ "C" にフォールバックします。 Windows マシンでは、環境変数で指定された全てのロケールが失敗すると、 "C" を使う前に、システムデフォルトのロケールを試みます。

-DL 実行時オプションがロケール設定のトレースに追加されました

これは、Perl コア開発者がロケールに関するバグをデバッグする助けになるように 設計されています。

-F-a を、-a-n を暗黙に指定するようになりました

以前は -a なしの -F は効果なしで、-n または -p なしの -a も 効果なしでした; この変更により、-F を指定すると -a-n が暗黙に 指定され、-a を指定すると -n が暗黙に指定されます。

追加の振る舞いのために -p を使うこともできます。 [perl #116190]

$a と $b は警告を免れるようになりました

sort で使われる特殊変数 $a と $b は、例え sort が使われていなくても "used once" 警告を免れるようになりました。 これにより、CPAN モジュールが同様の目的で $a と $b を使う関数を提供するのが より容易になります。 [perl #120462]

セキュリティ

パース中に free() されたメモリを読み込む可能性をなくしました

ヒヤドキュメントで終わっていてファイルの最後の行が改行文字で 終端されていないという普通でない状況の Perl プログラムのパース中に、 free() されたメモリが読み込まれる可能性がありました。 これは修正されました。

互換性のない変更

do はサブルーチン呼び出しに使えなくなりました

do SUBROUTINE(LIST) 形式は Perl v5.0.0 から廃止予定警告が出ていましたが、 文法エラーになりました。

クォート風エスケープの変更

ダブルクォート文字列 ("..." や qq(...)) の中の \c の後の文字は、{ 以外の 表示文字でなければならなくなりました。

\B または \b の後のリテラルな { は致命的になりました。

これらは perl v5.14.0 から廃止予定になっています。

汚染はより多くの状況で起こるようになりました; 文書に従うようになりました

これは、use locale スコープ内での正規表現マッチングと文字列の 大文字小文字変換 (lc, "\U" など) に影響します。 結果は、文書 (perlsec, "SECURITY" in perllocale) が示しているように、 文字列の内容に関わらず、操作を基にして汚染されるようになりました。 以前は、大文字小文字変換操作については、ロケールによって影響を受けるかも 知れない大文字小文字変換が行われる文字が文字列に含まれていないときは、 結果は汚染されていませんでした。 例えば、空文字列や、Latin1 以上の符号位置のみが含まれている文字列に対する uc() の結果は、以前は汚染されていませんでしたが、 汚染されるようになりました。 これにより、より一貫性のある汚染結果となります。 正規表現パターンは、($&, $2 のような) 非 2 値の結果について、 パターンに(汚染されているかも知れない)現在のロケールに依存するマッチングを 含んでいる場合にのみ、汚染します。 大文字小文字変換関数のように、マッチングされる文字列の実際の内容は、 以前は関係していましたが、関係なくなりました。 例えば、パターンに \w が含まれている場合、たとえマッチングがパターンの 一部が成功したかどうかを使う必要がなくても、結果は汚染されます; なぜなら \w がマッチングするものはロケールに依存するからです。 しかし、例えば、パターン中の . は汚染を有効にしません; なぜならドットは 任意の単一文字にマッチングし、現在のロケールは何にマッチングし何に マッチングしないかに影響を与えないからです。

非 Unicode 符号位置に対する \p{}, \P{} マッチングが変更されました

\p{}\P{} は Unicode が定義した符号位置 (U+0000 から U+10FFFF) のみに対して Unicode によって定義されています。 正当な Unicode 符号位置に対するマッチングの振る舞いに変更はありませんが、 0x110000 以上の符号位置には変更があります。 以前は、Perl はこれらに対する \p{}\P{} のマッチングは undef として扱い、「偽」に解釈していました。 \P{} については、これは「真」に補完されてました。 これが起きると警告が発生すると想定されていました。 しかし、様々な最適化がこの警告を妨げることがあり、結果はしばしば直感に反して、 マッチングとその補完の両方で偽になっていました。 全ての非 Unicode 符号位置は典型的な未割り当て Unicode 符号位置として 扱われるようになりました。 これは一般的には、より空気を読むようになります。 警告は、厳密な Unicode の手法と Perl が行っていた手法で結果が明らかに 異なる場合にのみ発生します。 厳密に Unicode に準拠する必要があるコードではこの警告を致命的にでき、 それから Perl は常に警告を発生させます。

詳細は "Beyond Unicode code points" in perlunicode にあります。

\p{All} は全ての可能性のある符号位置にマッチングするように拡張されました

Perl が定義した、CPAN で使われていない正規表現パターン要素 \p{All} は、 単に Unicode 符号位置とマッチングするために使われていました; これは 全ての符号位置にマッチングするようになりました; つまり、これは qr/./s と 等価です。 従って、\p{All} はもはや、Unicode が言っているように単に Unicode 符号位置に マッチングする \p{Any} の別名ではありません。

Data::Dumper の出力が変わる可能性があります

ダンプされるデータ構造と Data::Dumper の設定に依存して、ダンプされた 出力は以前のバージョンと変わる可能性があります。

Data::Dumper の正確な出力に依存したテストがある場合、失敗するかもしれません。

この問題を避けるためには、ダンプそのものではなく、ダンプされた構造を 評価したデータ構造に対してテストしてください。

ロケールの小数点文字は use locale のスコープの外側にリークしなくなりました

これは実際にはバグ修正ですが、このバグが存在していることに依存している コードがあるので、この変更はここに書かれています。 プログラムが実行されている現在のロケールは、use locale スコープの 内側でない限り Perl コードから見えないことになっています。 しかし、今まで一部の状況では、小数点に使われる文字 (しばしばカンマ) は スコープの外側にリークしていました。 コードがこの変更によって影響を受ける場合は、単に use locale を 加えてください。

Windows ソケットのエラーコードの $! への代入は WSAGetLastError() の値よりも errno.h の値を使うようになりました

以前のバージョンの Perl では、WSAGetLastError() から返された Windows の ソケットエラーコードは $! に代入され、VC++ (および gcc の様々な Windows 版) の errno.h にない ECONNABORTED のような一部の定数は、$! が ErrnoPOSIX によってエクスポートされている E* 定数に対してテスト出来るように、 対応する WSAE* の値として定義されていました。

これは、perl によって WSAE* の値に(再)定義されている部分を含む、> 100 の 値を持つ新しい E* 定数が errno.h 導入された VC++ 2010 まではうまく 動作していました。 これは、XS コードを、errno.h 定数の本来の定義を使っている他のライブラリと リンクするときに問題を引き起こします。

この非互換性を避けるために、perl は、可能なところでは WSAE* エラーコードを E* 値にマッピングして、その値を $! に代入します。 Errno および POSIX からエクスポートされる E* 定数は、$! とのテストが、 以前可能であったかどうかに関わらず、想定通りに動作し続けるように更新され、 errno.h にある全てのl E* 定数は、これらのモジュールから、元の errno.h の 値でエクスポートされるようになりました。

WSAE* の値を $! に代入している既存の Perl コードが壊れるのを防ぐために、 perl は代入に介入して、$! 自身に代入するときに内部で使われるのと同じように E* へのマッピングを行います。

しかし、後方非互換性が一つ残っています: 以前 $! に代入されていた WSAE* エラーコードの数値と $! を比較する既存の Perl コードは、代わりに 対応する E* 値が代入される場合に壊れます。 これは、< 100 の E* 値にのみ問題になります; これは ErrnoPOSIX から常に元の errno.h の値から エクスポートされるので、WSAE* エラーコードのテストには使えません (例えば WSAEINVAL は 10022 ですが、対応する EINVAL は 22 です)。 (> 100 である E* 値がもしあれば、どちらにしろ WSAE* 値に再定義されるので、 互換性は E* 定数を使うことで達成され、内部で異なった数値が 使われていたとしても、この変更の前後両方で動作します。)

関数 PerlIO_vsprintfPerlIO_sprintf は削除されました

これら二つの、文書化されておらず、CPAN で使われておらず、問題のある関数は 削除されました。

廃止予定

/\C/ 文字クラス

/\C/ 正規表現文字クラスは廃止予定です。 perl 5.22 以降これは警告を生成し、perl 5.24 以降これは正規表現コンパイラの エラーになります。 UTF8 エンコードされた文字を装っている個々のバイトを調べる必要がある場合は、 文字列(またはそのコピー)に対してまず utf8::encode() を使ってください。

変数名のリテラル制御文字

この廃止予定は、(NAKNEGATIVE ACKNOWLEDGE 文字のような) $\cT (\cT は ソースコード中のリテラルな制御文字) のようなものに影響します。 驚くべきことに、本来これは $^T のような、キャレット形式のみが代替策として 追加されている変数にアクセスする正当な方法を意図していたようです。

リテラル制御文字形式は主に二つの理由で廃止予定です。 これには、$\cI が $^I の別名として動作しないといったおそらく修正できない バグがあり、またこれらの使用は非 ASCII プラットフォームで移植性がありません: $^T はどこでも動作する一方、\cT は EBCDIC では空白です。 [perl #119123]

$/ の、整数でなかったり正の整数でないリファレンス

$/ をゼロへのリファレンスや負数へのリファレンスに設定するのは 廃止予定になり、undef に設定されたのと 正確に 同じように振る舞います。 吸い込みの振る舞いが必要なら、$/ に明示的に undef を設定してください。

$/ に非整数へのリファレンスを設定するのは禁止されることになり、エラーが 投げられます。 Perl がこの文脈で何が起こるかを文書化されたことはなく、$/ にリファレンスの アドレスを設定したのと同じように振る舞っていた一方、将来異なった振る舞いを するかもしれないので、この使用法を禁止することにしました。

POSIX の文字マッチングルーチン

POSIX モジュールの以下の関数の使用は廃止予定になりました: isalnum, isalpha, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, and isxdigit。 これらの関数はバグがあって、UTF-8 エンコードされた文字列では動作しません。 さらなる情報については POSIX のそれぞれのエントリを参照してください。

警告は、これらが呼び出されたコードの位置それぞれについて最初の呼び出しで 発生します。 (従って、ループ中で繰り返し呼び出されても一回だけ警告が発生します。)

インタプリタベースのスレッドは 非推奨 になりました

Perl によって提供されている「インタプリタベースのスレッド」は、想定されたり 望まれたりしているかもしれないような、マルチタスクのための高速で軽量な システムではありません。 スレッドは、誤用しやすい方法で実装されています。 これを正しく使う方法を知っている人や、助けを提供できる人はほとんどいません。

perl でのインタプリタベースのスレッドは公式に 非推奨 です。

モジュールの削除

以下のモジュールは将来のリリースのコア配布から削除される予定で、 その時点で CPAN からインストールする必要があるようになります。 これらのモジュールが必要な CPAN 配布はこれらを必要条件に指定する必要が あります。

このことを知らせるために、これらのモジュールのコア版は "deprecated" カテゴリ警告が出るようになります。 この廃止予定警告を黙らせるには、問題のモジュールを CPAN から インストールしてください。

これらのモジュールのコアからの削除計画は、コードの品質に関する判定を 反映したものではなく、これらの使用を中止することを推奨していると 受け取るべきでないことに注意してください。 これらのコアからの除去は、その設計を考慮したものではなく、完全な機能の CPAN が利用可能な Perl のインストールをブートストラップするために必要か どうかで決められています。

CGI と関連する CGI:: パッケージ
inc::latest
Package::Constants
Module::Build と関連する Module::Build:: パッケージ

ユーティリティの削除

以下のユーティリティは、将来のリリースでコア配布から取り除かれる予定で、その 時点から CPAN からインストールする必要があります。

find2perl
s2p
a2p

性能改善

モジュールとプラグマ

新しいモジュールとプラグマ

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

文書

新しい文書

perlrepository

この文書は Perl v5.14 で削除されました(実際には perlgit とリネームされて 大きくオーバーホールされました)が、Perl 文書 web サイトでは Perl v5.12 の 古い文書が最新版として表示されていました。 この文書は読者を現在の情報に導くようなスタブ形式で復旧されました。

既存の文書の変更

perldata

perldebguts

perlexperiment

perlfunc

perlguts

perlhack

perlhacktips

perllexwarn

perllocale

perlop

perlopentut

perlre

perlreguts

perlsub

perltrap

perlunicode

perlvar

perlxs

診断メッセージ

以下の追加や変更が、警告や致命的エラーメッセージ含む診断出力に行われました。 完全な診断メッセージの一覧については、perldiag を参照してください。

新しい診断メッセージ

新しいエラー

新しい警告

既存の診断メッセージの変更

ツールの変更

a2p

bisect.pl

git bisect ツール Porting/bisect.pl は多くの拡張が行われました。

これはソース配布の一部として提供されていますが、インストールはされません; git checkout の中で実行されていることに依存しているので 自己完結していないからです。 また、テストを修正したり実行時のバグを修正したりインストール時に何か 有用なことを行うものではないことにも注意してください - この目的は できるだけ「そのまま」ビルドと実行するための関心のある歴史的なリビジョンを 得るための最小限の変更点を作り、それによって git bisect を簡単に 使えるようにするためのものです。

find2perl

perlbug

設定とコンパイル

テスト

プラットフォーム対応

新しいプラットフォーム

Android

ネイティブとクロスコンパイルの両方、現在利用可能な三つのアーキテクチャ (ARM, MIPS, x86) 全て、および幅広いバージョンの Android で ビルドできるようになりました。

Bitrig

OpenBSD のフォークである Bitrig のためのコンパイル対応が追加されました。

FreeMiNT

FreeMiNT のための対応が追加されました; これは Atari ST システムとその子孫の ためのフリーなオープンソース OS で、元の MiNT は Atari によって公式に 譲渡されました。

Synology

Synology は、(Marvell Kirkwood mv6282 - ARMv5tel や Freescale QorIQ P1022 ppc - e500v2 のような) ワークステーションや開発用ではない比較的安価な CPU と 軽量 Linux ディストリビューション (DSM) の NAS ボックスを出荷しました。 これらのマシンでビルドできるようになったはずです。 基本的な問題は、ツールのための非標準の位置です。

中断したプラットフォーム

sfio

sfio I/O システム対応に関係するコードは削除されました。

Perl 5.004 で、sfio (AT&T の Safe/Fast I/O ライブラリ) の ネイティブ API 使用の対応が追加されました。 このコードは多くの退行テストが失敗していたにも関わらず v5.8.0 でも ビルドされていましたが、不注意で v5.8.1 リリースの前に壊れました; つまり、 それ以降にリリースされたどのバージョンの Perl でも動作しません。 10 年以上これに関するバグ報告を受け取っていないので、この機能をまだ 対応していたバージョンの Perl でも誰も使っていなかったのは明らかです。

AT&T 3b1

3b1、またの名を AT&T Unix PC (および同様の AT&T 7300) の Configure 対応は 削除されました。

DG/UX

DG/UX は Data General によって販売されていた Unix です。 最後のリリースは 2001 年 4 月です。 これは Data General 独自のハードウェアでのみ実行されます。

EBCDIC

定期的な smoke の報告源がないので、ネイティブな EBCDIC プラットフォームに 対応することを意図したコードは 5.22.0 の前に perl から取り除かれる予定です。

プラットフォーム固有の注意

Cygwin
GNU/Hurd

BSD 互換ライブラリ libbsd はもはやビルドに必要なくなりました。

Linux

ヒントファイルが libgdbm_compat を探すのは libgdbm 自身が必要な 場合にのみになりました。 前者は後者なしではまったく有用ではなく、一部の状況では、これを含めると 実際にはビルドを妨げることがあります。

Mac OS

ビルドシステムは、ユーザーが実行した Configure から提供された ld 設定に 従うようになりました。

MidnightBSD

objformat は MidnightBSD のバージョン 0.4-RELEASE で削除され、それ以前の バージョンでは廃止予定でした。 これにより、ビルド環境が誤って elf ではなく a.out として 設定されていました。 これは修正されました。

混合エンディアンプラットフォーム

混合エンディアンプラットフォームでの packunpack 操作に対応する コードが削除されました。 Perl は長い間 (PDP-11 のような) 混合エンディアンプラットフォームでは ビルドできなくなっていたはずなので、この変更により、v5.18.0 がビルドできる プラットフォームに影響することはないと考えています。

VMS
Win32
WinCE

内部の変更

バグ修正の抜粋

正規表現

Perl 5 デバッガと -d

レキシカルサブルーチン

その他全て

既知の問題

お悔やみ

リオデジャネイロの 27 歳、Diana Rosa は、いつもコンピュータスクリーンに 表示されていたプラッシュのらくだと共に、2014 年 5 月 10 日、長い眠りに つきました。 彼女は言語とそのコミュニティを愛した情熱的な Perl ハッカーで、Rio.pm の イベントに常に参加していました。 彼女は真のアーティストで、コードを書くことについては熱狂的で、アリアを歌い、 壁に落書きしていました。 私たちは決してあなたを忘れません。

Greg McCarroll は 2013 年 8 月 28 日に死去しました。

Greg は多くの良い理由でよく知られていました。 彼は、最初の YAPC::Europe の主催者の一人でした; これはカンファレンスが 赤字になるのを避けるために彼が必死に値を釣り上げた予定外のオークションで 終わったものです。 london.pm ミーティングに間違って 1 週間遅れて到着したのも Greg でした; 数年後彼は YAPC::Europe オークションで公式ミーティングの日付の選択を 売った一人でした; そして最終的に彼は london.pm の名誉あるリーダーとして、 彼が作り出したばかげた混乱を引き継ぐことになりました。

いつも親切で、親しげで、陽気で楽観的なあなたがいなくなって寂しいですが、決して 忘れません。

Acknowledgements

Perl 5.20.0 は、Perl 5.18.0 以降、124 人の作者によって、2,900 のファイルに 約 470,000 行の変更を加えて、約 12 ヶ月開発されてきました。

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

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

Aaron Crane, Abhijit Menon-Sen, Abigail, Abir Viqar, Alan Haggai Alavi, Alan Hourihane, Alexander Voronov, Alexandr Ciornii, Andy Dougherty, Anno Siegel, Aristotle Pagaltzis, Arthur Axel 'fREW' Schmidt, Brad Gilbert, Brendan Byrd, Brian Childs, Brian Fraser, Brian Gottreu, Chris 'BinGOs' Williams, Christian Millour, Colin Kuskie, Craig A. Berry, Dabrien 'Dabe' Murphy, Dagfinn Ilmari Mannsåker, Daniel Dragan, Darin McBride, David Golden, David Leadbeater, David Mitchell, David Nicol, David Steinbrunner, Dennis Kaarsemaker, Dominic Hargreaves, Ed Avis, Eric Brine, Evan Zacks, Father Chrysostomos, Florian Ragwitz, François Perrad, Gavin Shelley, Gideon Israel Dsouza, Gisle Aas, Graham Knop, H.Merijn Brand, Hauke D, Heiko Eissfeldt, Hiroo Hayashi, Hojung Youn, James E Keenan, Jarkko Hietaniemi, Jerry D. Hedden, Jess Robinson, Jesse Luehrs, Johan Vromans, John Gardiner Myers, John Goodyear, John P. Linderman, John Peacock, kafka, Kang-min Liu, Karen Etheridge, Karl Williamson, Keedi Kim, Kent Fredric, kevin dawson, Kevin Falcone, Kevin Ryde, Leon Timmermans, Lukas Mai, Marc Simpson, Marcel Grünauer, Marco Peereboom, Marcus Holland-Moritz, Mark Jason Dominus, Martin McGrath, Matthew Horsfall, Max Maischein, Mike Doherty, Moritz Lenz, Nathan Glenn, Nathan Trapuzzano, Neil Bowers, Neil Williams, Nicholas Clark, Niels Thykier, Niko Tyni, Olivier Mengué, Owain G. Ainsworth, Paul Green, Paul Johnson, Peter John Acklam, Peter Martini, Peter Rabbitson, Petr Písař, Philip Boulain, Philip Guenther, Piotr Roszatycki, Rafael Garcia-Suarez, Reini Urban, Reuben Thomas, Ricardo Signes, Ruslan Zakirov, Sergey Alekseev, Shirakata Kentaro, Shlomi Fish, Slaven Rezic, Smylers, Steffen Müller, Steve Hay, Sullivan Beck, Thomas Sibley, Tobias Leich, Toby Inkster, Tokuhiro Matsuno, Tom Christiansen, Tom Hukins, Tony Cook, Victor Efimov, Viktor Turskyi, Vladimir Timofeev, YAMASHINA Hio, Yves Orton, Zefram, Zsbán Ambrus, Ævar Arnfjörð Bjarmason.

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

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

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

バグ報告

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

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

もし報告しようとしているバグがセキュリティに関するもので、公開されている メーリングリストに送るのが不適切なものなら、 perl5-security-report@perl.org に送ってください。 このアドレスは、問題の影響を評価し、解決法を見つけ、Perl が対応している 全てのプラットフォームで問題を軽減または解決するパッチをリリースするのを 助けることが出来る、全てのコアコミッタが参加している非公開の メーリングリストになっています。 このアドレスは、独自に CPAN で配布されているモジュールではなく、 Perl コアのセキュリティ問題だけに使ってください。

SEE ALSO

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

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

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

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