安定性強化に向けて機能を整理した「Perl 5.18」リリース

 The Perl Foundationは5月18日、Perl5系の最新安定版「Perl 5.18.0」をリリースした。ハッシュ関連の強化、Unicode 6.2対応、スマートマッチの実験的機能への格下げなどが特徴となる。

 Perl 5.18.0は2012年5月20日に公開されたPerl 5.16からほぼ約1年ぶりの安定版となる。主要な変更点としては、まず実験的機能を利用するための新しい警告カテゴリ「experimental::feature_name」が追加された。実験的機能を利用する場合、「use feature “feature_name”」プラグマを利用して機能を有効にするだけでは警告が表示されるようになり、「no warnings “experimental::feature_name”」プラグマも併用して警告を無効にする必要がある。

 ハッシュについても大幅な見直しが行われ、従来バージョンとは互換性のない仕様変更も行われている。まずハッシュの際に使われるシードがランダム化され、keys()やvalues()、each()といったハッシュを利用する関数が返すキー/値の並び順が実行毎に異なるようになる。新しいハッシュ関数も追加されたほか、PERL_HASH_SEED環境変数の仕様変更やPERL_PERTURB_KEYS環境変数の追加なども行われている。

 Unicode 6.2への対応、新しいDTraceプローブの追加、実験的機能としてレキシカルサブルーチンの追加なども行われている。そのほか従来バージョンと互換性のない変更としては、「\N{…}」表現の扱いがいくつか変わっているほか、垂直タブがホワイトスペースとして扱われなくなっている点など、文字の扱いについていくつかの変更が加わっている。

 さらに、Perl 5.10で加わったスマートマッチ演算子は実験的(exprimental)なカテゴリに変更された。これは2つのオペランドをどのように比較するのかを判断する機能だが、不満が多く出ておりゆくゆくは変更されるか廃止となるだろうとしている。同じく5.10で導入されたレキシカルな「$_」も実験的機能になった。

 そのほかPerldeltaによると、encoding、CPANPLUS、Log::Message、Log::Message::Config、Log::Message::Handlers、Log::Message::Item、Log::Message::Simple、Object::Accessorなどが廃止予定のモジュールとなっている。

The Perl Foundation
http://www.perl.org/

perldelta
http://search.cpan.org/~rjbs/perl-5.18.0/pod/perldelta.pod