NAME

perl5220delta - perl v5.22.0 での変更点

DESCRIPTION

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

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

コアの拡張

新しいビット単位演算子

四つの標準ビット単位演算子 (& | ^ ~) について、そのオペランドを 一貫して数値として扱い、これらのオペランドを一貫して文字列として扱うための 四つのドット付き演算子 (&. |. ^. ~.) を導入するという、 新しい実験的機能が追加されました。 同じものは代入のバリエーション (&= |= ^= &.= |.= ^.=) にも適用されます。

これを使うには、"bitwise" 機能を有効にして "experimental::bitwise" 警告カテゴリを無効にしてください。 詳しくは "Bitwise String Operators" in perlop を参照してください。 [perl #123466].

新しい二重ダイアモンド演算子

<<>><> と同様ですが、@ARGV のそれぞれのファイルを 開くのに 3 引数の open を使います。 これは、@ARGV のそれぞれの要素は実際のファイル名として扱われ、"|foo" は パイプとして扱われないということです。

正規表現中の新しい \b 境界

qr/\b{gcb}/

gcb は「書記素クラスタ境界」(Grapheme Cluster Boundary) のことです。 これは、その言語のネイティブな話者にとって、単一文字に見えるような 文字の並びの間の境界を見つけるための Unicode 特性です。 Perl は長い間、\X エスケープシーケンスを通してこれらを扱う能力が ありました。 これらを扱うためのもう一つの方法ができました。 詳しくは "\b{}, \b, \B{}, \B" in perlrebackslash を参照してください。

qr/\b{wb}/

wb は「単語境界」(Word Boundary) のことです。 これは単語の境界を探す Unicode 特性です。 これは普通の \b (中かっこなし) と似ていますが、自然言語処理に より適しています。 これは、例えばアポストロフィが単語の中に現れることがあるということを 知っています。 詳しくは "\b{}, \b, \B{}, \B" in perlrebackslash を参照してください。

qr/\b{sb}/

sb は「文境界」(Sentence Boundary) のことです。 これは自然言語の文のパースを助ける Unicode 特性です。 詳しくは "\b{}, \b, \B{}, \B" in perlrebackslash を参照してください。

非捕捉正規表現フラグ

正規表現は、捕捉してグループ内で $1, $2 などを埋める機能を無効にする /n フラグに対応しました:

  "hello" =~ /(hi|hello)/n; # $1 is not set

これは全ての捕捉グループの前に ?: を置くのと等価です。

さらなる情報については "n" in perlre を参照してください。

use re 'strict'

これは、このスコープ内でコンパイルされる正規表現パターンに対してより厳密な 文法規則を適用します。 これは、うまくいけば、過去互換性問題により通常の正規表現コンパイルでは 報告しないタイプミスやその他の意図しない振る舞いを警告します。 この振る舞いは、私たちが経験を積むにつれて将来の Perl リリースでは 変更されるかもしれないので、このプラグマの使用は experimental::re_strict カテゴリの警告を引き起こします。 'strict' in re を参照してください。

(修正付き) Unicode 7.0 に対応しました

このリリースが何かの詳細については、 http://www.unicode.org/versions/Unicode7.0.0/ を参照してください。 Perl に同梱されるバージョンの Unicode 7.0 はアラビア語のグリフの形の 扱いに関する修正を含んでいます (http://www.unicode.org/errata/#current_errata 参照)。

use locale でどのロケールカテゴリが影響を受けるかを制限できます

ロケールカテゴリの一部にだけロケールを識別させ、他のものに影響を 与えないようにするために、use locale に引数を渡せるようになりました。 詳しくは "The "use locale" pragma" in perllocale を参照してください。

Perl は POSIX 2008 ロケール通貨追加に対応しました

POSIX.1-2008 を扱えるプラットフォームでは、 POSIX::localeconv() が返す ハッシュにはこのバージョンの POSIX 標準で追加された国際通貨フィールドを 含んでいます。 それは int_n_cs_precedes, int_n_sep_by_space, int_n_sign_posn, int_p_cs_precedes, int_p_sep_by_space, int_p_sign_posn です。

ロケールの UTF-8 性を決定するための古いプラットフォームでのよりよい経験則

C99 標準も POSIX 2001 標準も実装していないプラットフォームでは、現在の ロケールが UTF-8 かどうかの決定は経験則に依っていませんでした。 これらはこのリリースで改善されました。

リファレンス経由の別名

変数とサブルーチンは、リファレンスに代入することで別名を 作れるようになりました:

    \$c = \$d;
    \&x = \&y;

別名化は、foreach 反復子変数の前にバックスラッシュを使うことでも 行えます; これはおそらくこの機能が提供する最も有用な慣用句です:

    foreach \%hash (@array_of_hash_refs) { ... }

この機能は実験的で、use feature 'refaliasing' で 有効にしなければなりません。 これは experimental::refaliasing 警告が無効にされない限り警告されます。

"Assigning to References" in perlref を参照してください。

引数なしの prototype

引数なしの prototype()$_ を仮定するようになりました。 [perl #123514].

新しい :const サブルーチン属性

const 属性を無名サブルーチンに適用できるようになりました。 これは、新しいサブルーチンが作られると (つまり、sub 式が評価されると) 直ちに実行されるようになります。 その値は捕捉され、新しい定数サブルーチンで使われます。 この機能は実験的です。 "Constant Functions" in perlsub を参照してください。

fileno はディレクトリハンドルに対して動作するようになりました

関連するサポートがオペレーティングシステムで利用可能なら、 fileno 組み込み関数はディレクトリハンドルに対して直接動作するようになり、 ファイルハンドルが元となるファイル記述子を同じようになります。 このようなサポートのないオペレーティングシステムでは、ディレクトリハンドルに 対する fileno は以前通り未定義値を返し続けますが、この操作に 対応していないことを示すために $! を設定します。

現在のところ、これは OS の DIR 構造体の dd_fd メンバと、 POSIX.1-2008 で定義されている dirfd(3) 関数で使っています。

Win32 でリスト形式のパイプが実装されました

リスト形式のパイプ:

  open my $fh, "-|", "program", @arguments;

が Win32 で実装されました。 これは Win32 での system LIST と同じ制限があります; Win32 API は プログラム引数をリストとして受け付けないからです。

リスト繰り返しへの代入

(...) x ... は、左側が妥当な左辺値である限り、代入されるリストの内側で 使われるようになりました。 これにより、(undef,undef,$foo) = that_function()((undef)x2, $foo) = that_function() と書けるようになりました。

無限と NaN (非数) の扱いが改良されました

浮動小数点数は特別な値である無限、負の無限、NaN (非数) を 保持できるようになりました。 計算中により確実にこれらの値を認識および伝達して、出力時にはこれらを 文字列 Inf, -Inf, NaN に正規化するようになりました。

POSIX 拡張も参照してください。

浮動小数点のパースが改善されました

浮動小数点値のパースと表示が改善されました。

完全に新しい機能として、(0x1.23p-4 のような) 16 進小数点リテラルに対応し、 printf %a で表示できるようになりました。 さらなる詳細については "Scalar value constructors" in perldata を 参照してください。

無限や非数を文字に pack しようとすると致命的エラーになるようになりました

以前は、無限や非数を(符号付きの)文字に pack しようとすると、Perl は警告し、 0xFF を pack しようとしたかのように振る舞っていました; これを chr の引数に渡すと、U+FFFD が返されました。

しかし、このような操作全て (pack, chr, print '%c') は 致命的エラーになりました。

実験的な C バックトレース API

Perl は (gdb のようなシンボリックデバッガが行うのと似た) C レベルの バックトレースの取得に (C レベルの API 経由で) 対応しました。

バックトレースは、シンボル名 (関数名)、("perl" のような) オブジェクト名、 および可能ならソースコードの位置 (ファイル:行) 付きで、C 呼び出しフレームの スタックトレースを返します。

対応しているプラットフォームは Linux と OSX です (一部の *BSD も 少なくとも部分的には動作するかも知れませんが、テストされていません)。

この機能は Configure -Dusecbacktrace で有効にする必要があります。

さらなる情報については "C backtrace" in perlhacktips を参照してください。

セキュリティ

Perl は、利用可能なら -fstack-protector-strong 付きでコンパイルされるようになりました

Perl は 5.10.1 から対スタック破壊オプション -fstack-protector 付きで コンパイルされています。 今回から、もし利用可能なら、より新しいバージョンである -fstack-protector-strong を使います。

Safe モジュールは置き換えるための外部パッケージを許すようになりました

致命的バグ修正: 外側のパッケージを置き換えることが出来ました。 Safe はこれを修正するために 2.38 にパッチされました。

Perl は、利用可能なら常に -D_FORTIFY_SOURCE=2 付きでコンパイルされるようになりました

gcc 4.* で利用可能な、_FORTIFY_SOURCE と呼ばれる「コード強化」オプションは、 利用可能なら、Perl をコンパイルするのに常に使われるようになりました。

これは必ずしも大きなステップではないことに注意してください; 多くの プラットフォームではこれは既に数年前から行われていたからです: (Fedora のような)多くの Linux ディストリビューションは Perl に このオプションを使っていますし、OS X は何年も前から同じことを 実施していました。

互換性のない変更

サブルーチンシグネチャは属性の前に移動しました

5.20 で導入された、実験的なサブルーチンシグネチャ機能は、属性の後の シグネチャをパースしていました。 このリリースでは、実験的機能のユーザからのフィードバックに従って、 シグネチャは(あれば)サブルーチン名の後で、(あれば)属性リストの前になるように 場所が移動しました。

&\& のプロトタイプはサブルーチンのみを受け付けます

& プロトタイプ文字は、無名サブルーチン (sub {...})、\& で 始まるもの、明示的な undef のみを受け付けるようになりました。 以前は間違って undef 及び、配列、ハッシュ、リストへのリファレンスを 受け付けていました。 [perl #4539]. [perl #123062]. [perl #123062].

さらに、\& プロトタイプはサブルーチン呼び出しを受け付けていましたが、 サブルーチンのみを受け付けるようになりました。 &foo はまだ引数として認められますが、&foo()foo() はもはやs 認められません。 [perl #77860].

use encoding はレキシカルになりました

encoding プラグマの効果はレキシカルスコープに制限されました。 このプラグマは廃止予定ですが、それまでの間、今のところ、同じプログラムで インクルードしている無関係のモジュールに悪影響を与えることがありました; この変更はこれを修正します。

空リストを返すリストスライス

空リストを返すリストスライスは、元のリストが空(またはインデックスがない)の 場合のみになりました。 以前は、全てのインデックスが元のリストの外側の時に空リストを返していました; このような場合は undef 値のリストを返すようになりました。 [perl #114498].

複数の空白を含む \N{} は致命的エラーになりました

\N{TOO\x{00a0}\x{00a0}MANY SPACES}\N{TRAILING SPACE } などです。 これは v5.18 から廃止予定でした。

use UNIVERSAL '...' は致命的エラーになりました

UNIVERSAL からの関数のインポートは v5.12 から廃止予定で、今回 致命的エラーとなりました。 引数なしの use UNIVERSAL は許されたままです。

ダブルクォート風の \cX で、X は表示可能な ASCII 文字でなければならなくなりました

以前のリリースでは、これで廃止予定警告を発生させるのに失敗していました。

正規表現中の (?(* の分割は致命的コンパイルエラーになりました

これは v5.18 から廃止予定でした。

qr/foo/x は、全ての Unicode パターン空白を無視するようになりました

The /x 正規表現修飾子は、可読性を上げるために、パターンにスペースとコメント (どちらも無視されます)を含むことが出来るようにします。 今まで、Unicode がこの目的のために指定した空白文字を全ては 扱っていませんでした。 追加して認識されるようになったものは:

    U+0085 NEXT LINE
    U+200E LEFT-TO-RIGHT MARK
    U+200F RIGHT-TO-LEFT MARK
    U+2028 LINE SEPARATOR
    U+2029 PARAGRAPH SEPARATOR

これらの文字を、/x 付きで、大かっこ文字クラスの外側で使って、 前にバックスラッシュを置いていない場合、v5.18 から廃止予定警告が 発生していました。 これらは無視されるようになりました。

(?[ ]) の中のコメント行は \n でのみ終わるようになりました

(?[ ]) は v5.18 で導入された実験的機能です。 これは /x が常に有効であるかのように動作します。 しかし違いがありました: (# 文字に引き続く) コメント行は、改行のような 全ての垂直空白を含む、\R にマッチングするなんでもで終端されていました。 一貫性のために、(?[ ]) の外側でコメント行を終端するものと 一致するように変更されました。 すなわち \n (エスケープされていても) で、これはヒヤドキュメントと フォーマットを終端するものと同じです。

(?[...]) 演算子は標準 Perl の優先順位に従うようになりました

この実験的機能により、正規表現パターンの中で操作を設定できるようになります。 これ以前では、共通集合演算子は他の 2 項演算子と同じ優先順位を持っていました。 これはより高い優先順位を持つようになりました。 これは、既にあるコードが想定しているものと違う結果を引き起こすことがあります (しかし文書は常にこの変更が起こるかも知れないので、式を完全にかっこで 囲むことを推奨していました)。 "Extended Bracketed Character Classes" in perlrecharclass を参照してください。

ハッシュと配列の名前から %@ を省略するのはもはや許されません

とても古い Perl では、一部の場所で配列名の @ とハッシュ名の % を 省略できました。 これは Perl 5.000 から廃止予定警告が出力されていて、もはや 許されなくなりました。

"$!" の文章は、"use locale" スコープの外側では英語になりました

以前は、他のほとんどのものと違って、このテキストは常にプログラムの現在の ロケールを基にして出力されていました。 (また一部のシステムで影響していたのは "$^E" です) ロケールの違いを扱う準備の出来ていないプログラムにとって、 これはごみテキストを表示することになることがありました。 何らかのツールで翻訳可能なテキストを表示する方が、何が起きているのかを 知るのが遥かに難しいごみテキストを表示するよりましです。

"$!" の文章は、適切な場合は UTF-8 で返します

$!$^E の文字列化は、テキストが実際に非 ASCII UTF-8 の場合は UTF-8 フラグを持つようになりました。 これにより、ロケールを認識して設定されるプログラムがユーザーのネイティブな 言語で適切にメッセージを出力できるようになります。 5.20 以前の振る舞いを続ける必要のあるコードは、 use bytesuse locale ":messages" の両方のスコープ内で 文字列化を行えます。 これら二つのスコープの中では、その他の Perl の操作はロケールに影響を 受けません; $!$^E の文字列化のみです。 bytes プラグマは、以前の Perl リリースと同様、UTF-8 フラグを 設定しないようになりました。 これは [perl #112208] を 解決します。

明示的な演算子なしの ?PATTERN? の対応は削除されました

正規表現に一回だけマッチングする m?PATTERN? 構文は、以前は 疑問符デリミタで直接書かれて、明示的な m 演算子を省略した もう一つの形式がありました。 この使い方は 5.14.0 から廃止予定警告が出力されていました。 疑問符を新しい演算子のために利用可能にするために、今回これは 文法エラーになりました。

defined(@array)defined(%hash) は致命的エラーになりました

これは v5.6.1 から廃止予定で、v5.16 から廃止予定警告が出力されていました。

ハッシュや配列をリファレンスとして使うのは致命的エラーになりました

例えば、%foo->{"bar"} は致命的コンパイルエラーが 発生するようになりました。 これは v5.8 以前から廃止予定で、それから廃止予定警告が発生していました。

* プロトタイプの変更

サブルーチンプロトタイプ中の * 文字は、ほとんどの(しかし全てではない) サブルーチン名に対して優先して裸の単語を使えるようにしていました。 これは決して一貫性がなく、バグっぽい振る舞いを見せていました。

これは変更され、サブルーチンは常に裸の単語より優先されるようになりました; これにより、似たような形のプロトタイプの組み込み関数に従った形になります。

    sub splat(*) { ... }
    sub foo { ... }
    splat(foo); # now always splat(foo())
    splat(bar); # still splat('bar') as before
    close(foo); # close(foo())
    close(bar); # close('bar')

廃止予定

${^ENCODING}undef 以外への変更

この変数は、ASCII と UTF-8 以外の文字列で Perl スクリプトを 書けるようにしていました。 しかし、これは全てのモジュールにグローバルに影響し、間違った答えや セグメンテーションフォルトを引き起こしていました。 新しいスクリプトは UTF-8 で書かれるべきです; 古いスクリプトは UTF-8 に 変換するべきです; これは piconv ユーティリティで簡単に行えます。

単一文字変数名としての非図形文字の使用

単一文字変数名の文法は、より長い変数名よりも大目に見られていて、句読点文字や 見えない(非図形)文字ですら 1 文字名として許されていました。 Perl v5.20 ではこのような名前として ASCII の範囲の制御文字を 廃止予定にしました。 今回、以前は許されていた全ての非図形文字も廃止予定となりました。 これによる実質的な影響は、use utf8 でない場合のみで、 C1 制御文字 (符号位置 0x80 から 0xFF), NO-BREAK SPACE, SOFT HYPHEN のみに 影響します。

観測可能な副作用を持つ sub () { $var } のインライン化

多くの場合 Perl は sub () { $var } をインライン化可能な定数 サブルーチンにして、sub 式が評価された時点での $var の値を捕捉します。 これは、$var が引き続いて変更された場合にクロージャの振る舞いを 壊すことがあります; このサブルーチンは変更された値を返さないからです。 (これは全て空プロトタイプを持つ無名サブルーチン (sub ()) のみに 適用されることに注意してください。)

この使い方は、変数が他の場所で変更されるかも知れないようなケースは 廃止予定です。 Perl はこのようなケースを検出して廃止予定警告を出力します。 このようなコードは将来変更されて、定数を作成しなくなります。

もし変数が宣言された場所でのみ変更されるなら、Perl は警告なしでサブルーチンを インライン可能なままにします。

    sub make_constant {
        my $var = shift;
        return sub () { $var }; # fine
    }

    sub make_constant_deprecated {
        my $var;
        $var = shift;
        return sub () { $var }; # deprecated
    }

    sub make_constant_deprecated2 {
        my $var = shift;
        log_that_value($var); # could modify $var
        return sub () { $var }; # deprecated
    }

前述の 2 番目の例で、$var が 1 回だけ代入されているということは検出が とても困難です。 これが my 宣言以外のところにあれば、Perl が疑わしいところを見つけるには 十分です。

この廃止予定警告は、サブルーチンのhんたいで単純な変数に対してのみ 発生します。 (サブルーチンの中の BEGIN ブロックや use 文は無視されます; これは サブルーチンの本体ではないからです。) sub () { do_something() if 0; $var } のようなより複雑なケースでは、 変数が他の場所で変更可能な場合はインライン化は起こらないように 変更されました。 このようなケースは稀のはずです。

複数の /x 正規表現修飾子の使用

次のどれかのようなものは廃止予定になりました:

    qr/foo/xx;
    /(?xax:foo)/;
    use re qw(/amxx);

つまり、x は一つの正規表現パターン修飾子の文字列に一度だけ 現れるようになったということです。 これは CPAN のどこにも現れていないと信じています。 これは、将来の Perl リリースで /xx が大かっこ文字クラス (大かっこで囲まれたもの: [...]) の中で 可読性のために空白を許すようにするための準備です。

\N{...} の文字別名での NO-BREAK スペースの使用は廃止予定になりました

この非図形文字は本質的に通常のスペースと区別できないので、これは 認められるべきではありません。 "CUSTOM ALIASES" in charnames を参照してください。

パターン中のリテラルな "{" はエスケープすることになりました

正規表現内でリテラルな左中かっこを使いたい場合、 バックスラッシュを前に置く ("\{") か、大かっこで囲む "[{]" か、 \Q を使ってエスケープする必要があるようになりました; さもなければ 廃止予定警告が発生します。 これは v5.16 リリースで最初にアナウンスされていました; これにより言語の 将来の拡張が可能になります。

全ての警告を致命的にするのは非推奨です

fatal warnings の文書は、 use warnings FATAL => 'all' が非推奨であると注意するようになり、 一般的に致命的エラーのリスクについてより強い言葉で記述されました。

性能改善

モジュールとプラグマ

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

perl と共に配布されているライブラリの多くが v5.20.0 から更新されました。 変更の完全な一覧を見るには、以下を実行してください:

  corelist --diff 5.20.0 5.22.0

5.20.0 の部分を好みのバージョンに置き換えることも出来ます。

注目するべき変更には次のようなものがあります:

削除されたモジュールとプラグマ

以下のモジュール (および関連するモジュール) はコア perl 配布から 削除されました:

文書

新しい文書

perlunicook

この文書は Tom Christiansen によるもので、Perl での Unicode の扱い方の例を 提供します。

既存の文書の変更

perlaix

perlapi

perldata

perlebcdic

perlfilter

perlfunc

perlguts

perlhack

perlhacktips

perlhpux

perllocale

perlmodstyle

perlop

perlpodspec

perlpolicy

perlport

perlre

perlrebackslash

perlrecharclass

perlref

perlsec

perlsyn

perlunicode

perluniintro

perlvar

perlvms

perlxs

診断メッセージ

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

新しい診断メッセージ

新しいエラー

新しい警告

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

診断メッセージの削除

ツールの変更

find2perl, s2p, a2p の削除

h2ph

encguess

設定とコンパイル

テスト

プラットフォーム対応

再開したプラットフォーム

IRIX と Tru64 プラットフォームで再び動作するようになりました。

一部の make test の失敗は残っています: IRIX では [perl #123977][perl #125298]; Tru64 では [perl #124212], [cpan #99605], [cpan #104836

z/OS running EBCDIC Code Page 1047

コア perl はこの EBCDIC プラットフォームで動作するようになりました。 以前の perl も動作しますが、公式には対応を中断していたわけではないにも 関わらず、最近の perl はうまくコンパイルおよび動作していませんでした。 Perl 5.20 では動作していましたが、今は修正されている多くのバグを 持っていました。 Pod::Simple を含む、Perl に同梱されている多くの CPAN モジュールはまだ テストに失敗します。 しかし、現在 CPAN にあるバージョンの Pod::Simple は動作するはずです; Perl 5.22 に含めるには修正が遅すぎました。 まだ壊れている CPAN モジュールの多くも修正作業中で、それが完了すれば CPAN からインストールできるようになる予定なので、動作するバージョンを 得るために Perl 5.24 まで待つ必要はないでしょう。

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

NeXTSTEP/OPENSTEP

NeXTSTEP は 90 年代初頭から中盤に書けて NeXT のワークステーションに同梱された プロプリエタリなオペレーティングシステムです; OPENSTEP は 非 NeXTSTEP システムに NeXTSTEP 風の環境を提供するための API 仕様です。 どちらもずっと前に死んでいるので、これらで Perl をビルドするための対応は 削除されました。

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

EBCDIC

EBCDIC プラットフォームで qr/[i-j]/"i""j" のみに マッチングするために、perl インタプリタは特別な扱いが必要です; 符号位置 "i""j" の間には 7 文字あるからです。 この特別扱いは範囲の両方の端がリテラルの時にのみ行われます。 これは、文字を指定するのにリテラルではなく \N{...} 形式で名前や Unicode 符号位置を使っている場合も行われるようになりました。 "Character Ranges" in perlrecharclass を参照してください。

HP-UX

archname は use64bitint を use64bitall と区別するようになりました。

Android

一般的なクロスコンパイルと、特に Android 用で、ビルド対応が改善しました。

VMS
Win32
OpenBSD

OpenBSD では、Perl はデフォルトではシステムの malloc を使うように なりました; これが提供するセキュリティ機能のためです。 Perl 自身の malloc ラッパは性能上の理由により v5.14 から使われていましたが、 OpenBSD プロジェクトは、このトレードオフは価値があり、特に速度が必要な ユーザが求めることを好みます。

[perl #122000].

Solaris

内部の変更

バグ修正の抜粋

既知の問題

お悔やみ

Brian McCauley は 2015 年 5 月 8 日に死去しました。 彼は Usenet, Perl Monks 及びその他の Perl フォーラムに頻繁に投稿していて、 NOBULL の名前で Perl FAQ を含むいくつかの CPAN 貢献を行っていました。 彼はほとんど毎回 YAPC::Europe に参加し、そして実際、YAPC::Europe 2006 と QA Hackathon 2009 の運営を助けました。 複雑なシステムでの彼の機知と歓喜は、彼のボードゲーム愛に特に現れていました; 多くの Perl monger は、Brian とフラックスやその他のゲームをプレイした 楽しい記憶を持っています。 彼がいなくなって悲しいです。

Acknowledgements

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

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

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

Aaron Crane, Abhijit Menon-Sen, Abigail, Alberto Simões, Alex Solovey, Alex Vandiver, Alexandr Ciornii, Alexandre (Midnite) Jousset, Andreas König, Andreas Voegele, Andrew Fresh, Andy Dougherty, Anthony Heading, Aristotle Pagaltzis, brian d foy, Brian Fraser, Chad Granum, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel Dragan, Darin McBride, Dave Rolsky, David Golden, David Mitchell, David Wheeler, Dmitri Tikhonov, Doug Bell, E. Choroba, Ed J, Eric Herman, Father Chrysostomos, George Greer, Glenn D. Golden, Graham Knop, H.Merijn Brand, Herbert Breunung, Hugo van der Sanden, James E Keenan, James McCoy, James Raspass, Jan Dubois, Jarkko Hietaniemi, Jasmine Ngan, Jerry D. Hedden, Jim Cromie, John Goodyear, kafka, Karen Etheridge, Karl Williamson, Kent Fredric, kmx, Lajos Veres, Leon Timmermans, Lukas Mai, Mathieu Arnold, Matthew Horsfall, Max Maischein, Michael Bunk, Nicholas Clark, Niels Thykier, Niko Tyni, Norman Koch, Olivier Mengué, Peter John Acklam, Peter Martini, Petr Písař, Philippe Bruhat (BooK), Pierre Bogossian, Rafael Garcia-Suarez, Randy Stauner, Reini Urban, Ricardo Signes, Rob Hoelz, Rostislav Skudnov, Sawyer X, Shirakata Kentaro, Shlomi Fish, Sisyphus, Slaven Rezic, Smylers, Steffen Müller, Steve Hay, Sullivan Beck, syber, Tadeusz Sośnierz, Thomas Sibley, Todd Rinaldo, Tony Cook, Vincent Pit, Vladimir Marek, Yaroslav Kuzmin, Yves Orton, Ævar Arnfjörð Bjarmason.

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

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

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

バグ報告

もしバグと思われるものを見つけたら、comp.lang.perl.misc ニュースグループに 最近投稿された記事や https://rt.perl.org/ にある 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 ファイル。