約1年ぶりのメジャーアップデート、Perl 5.14リリース

 Perl開発チームは5月14日、最新版「Perl 5.14」をリリースした。互換性などに関わる大きな仕様変更はないものの、Unicode 6.0の対応など多くの新機能追加や最適化が行われている。

 2010年4月にリリースした「Perl 5.12」以来のメジャーリリースとなり、最新の開発スケジュールに基づく初のリリースとなる。約150人の開発者が3000近くのファイルに、合計55万行の変更を加えたという。

 バージョン5.14ではUnicode 6をほぼ完全にサポートするほか、Unicode関連機能も多数改善された。また、正規表現に新たな修飾子が追加され、非破壊的置換オプション「/r」も用意された。「/r」オプションは正規表現による置換(s///)および変換(y///)で利用でき、入力された値をコピーしてから置換/変換処理を行って結果を返す、という処理を行うもの。

 文法的な拡張としては、配列やハッシュに対する処理を行うコンテナ関数(pushやpop、shift、unshift、splice、keys、values、eachなど)が引数として参照(リファレンス)を受け付けるようになった点が挙げられる。従来はリファレンスを引数に与えたい場合、それらを「@{}」や「%{}」で囲む必要があったが、この拡張によってより簡潔にコードを記述できる。ただし、この機能は実験的なものとのことで、正確な振る舞いは将来的に変更される可能性もあるとのこと。

 また、ブロックを用いたパッケージ宣言にも対応した。たとえば「{ package Foo; … }」と記述していたものを、「package Foo { … }」のように記述できる。

 例外処理の一貫性の向上のため「die」や「warn」、「$@」の振る舞いも多少ながら変更されたほか、IPv6のサポート改善、CPANクライアントの自動設定も容易になった。

 性能面でも改善が加えられており、shiftやpopの最適化、正規表現の文字列比較処理やコンパイルの高速化、文字列追加の一部プラットフォームでの大幅な高速化などが行われているとのこと。Unicodeデータベースのインストールもなくなり、ドキュメントも大部分を改善したという。

 今後のスケジュールとしては、パッチリリースとなるバージョン5.14.1を約1カ月後にリリース、次期版「Perl 5.16」は2012年春を目指すとしている。

 なお、以前の安定版との互換性を失わせる変更もいくつか挙げられている。おかしな振る舞いやバグの修正が主だが、正規表現と文字列のエスケープ関連やスタッシュ関連処理など明示的に変更されているものもある。また、内部処理やC APIの変更も行われており、以前のバージョンとのバイナリレベル互換性はない。そのため、Perl 5.14以前で使用していたXSやCを用いて実装されているモジュールは、Perl 5.14向けに再インストールが必要となる。

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

perldelta – perl v5.14.0 での変更点
http://perldoc.jp/docs/perl/5.14.0/perl5140delta.pod

ダウンロード
http://www.perl.org/get.html