5

5.10.0 より前のドキュメントと最近のバージョンのモジュールの間でアドバイスが矛盾していて、少し混乱しています。 Perl のベスト プラクティスでは、バージョン文字列 ('v1.0.3') が不適切であり、次のようにバージョンを指定する必要があることを明確に示しています。

use version; our $VERSION = qv('1.0.3');

しかし、バージョン モジュールは、バージョン文字列の使用に戻ったことを示しています。

use version 0.77; our $VERSION = qv("v1.2.3");

後退しましたか、それともその背後に理由がありますか?

4

1 に答える 1

8

Perl Best Practicesからの引用は正しくありません。具体的には、フォームの裸のvstring

our $VERSION = v1.0.3;

落胆します。version.pm の最新バージョンでは、真の文字列を使用することをお勧めします。

use version 0.77; our $VERSION = qv("v1.2.3");               # shorthand

この機能は読みやすさを向上させるために追加されましたが、ここで説明されている裸の文字列のトラップを具体的に回避します。

リンク先のドキュメント ページにあるように、Perl 5.10 の組み込みロジックを使用して、保留中の 'v' を前に付けずにバージョンを使用できます。

10 進数の $VERSION (浮動小数点) を使用するモジュールがあり、それを変更するつもりがない場合、このモジュールは適していません。単純な $VERSION 割り当てよりも version.pm が得られるものは何もありません。

したがって、あなたの質問に対する答えは次のとおりです。version.pm を使用する新しいコードを作成する場合は、新しい「v1.0.3」構文を使用してください。それがあなたの古いコードが書かれた方法である場合、または明示的にmodule.pmに依存したくない場合は、単純な番号に固執してください。

于 2009-08-01T08:19:12.797 に答える