9

I'm maintaining a CPAN distribution that has over 100 .pm files. Do each of them need to have a $VERSION, or is it okay to just include it in the main module?

For the other modules in the distribution, what effect does including or not including the $VERSION have?

In case it's relevant to the question, people should only be "use"-ing the main module in this distribution. And, for the purpose of this question, I'm not asking about how it should be specified in any file, just whether or not it's present in any form.

4

1 に答える 1

11

経験的に、多くのモジュールはすべての.pmファイルにバージョン番号を入れているわけではありません。スナップショットバンドル(bcpanp)を実行し、生成されたファイルを見ると、それがわかります。私のマシンでは、多くのモジュールが追加されたPerl 5.16.2のスナップショットには7962個のモジュールが含まれていましたが、そのうちの2070個にはバージョンとして「undef」が含まれていました(したがって、およそ4分の1がバージョンとしてundefを持っています)。

個人的にはそれが好きではないので.pm、モジュール内のすべてのファイル(DBD :: Informix)には、各リリースで同じバージョンのバージョンスタンプが付けられています(現在のリリースは2013.0118であり、すべての.pmファイルにはバージョンとして2013.0118のスタンプが付けられています)数)、しかしそれ以外の方法でそれを行うモジュール(人)がたくさんあります。

  • .pmすべてのファイルにバージョン番号を指定する必要はありません。
  • .pm全体として、実際にすべてのファイルのバージョン番号を提供する方がよいでしょう。
  • .pmディストリビューション内のすべてのファイルに同じバージョン番号を指定するのが賢明だと思います。

私の見解では、最悪の問題はモジュールが更新されたときに発生しますが、一部は更新されていないため、CPANPLUSは、最新バージョンをインストールしても何も変更されない場合でも、モジュールが古くなっていると見なします。私は現在そのようなモジュールを5つ持っていますが、特に実際には使用していないので、それらをすべて削除したくなります。(ファイルが新しい場所にインストールされることによってトリガーされることもありますが、それが唯一の原因ではないと思います。他に何がトリガーされるかはわかりませんが、定期的に発生する問題です。)

于 2013-01-21T06:59:00.837 に答える