2013-01-21 39 views
9

我正在維護具有超過100個.pm文件的CPAN分發。他們每個人都需要有一個$ VERSION,還是可以將它包含在主模塊中?發行版中的每個Perl模塊是否都需要有版本號?

對於發行版中的其他模塊,包含或不包含$ VERSION有什麼作用?

如果與問題相關,人們應該只是「使用」 - 在這個分配中的主要模塊。而且,就這個問題而言,我不是在詢問如何它應該在任何文件中指定,只是是否或不以任何形式存在。

+1

經驗值,很多模塊不會將版本號放在每個'.pm'文件中。如果你做一個快照包('c' in'cpanp'),你會看到。就我個人而言,我不喜歡這樣(所以我的模塊中的所有'.pm'文件都使用相同版本標記版本),但是有很多模塊(人員)會這樣做。最糟糕的問題出現在模塊更新但有一些不是的時候,所以CPANPLUS認爲模塊已經過時了,即使安裝最新版本並沒有改變任何東西。目前我有5個這樣的模塊,我非常想嘗試刪除它們! –

+0

@JonathanLeffler:這看起來像是對我的回答,你會介意將它發佈爲一個嗎? –

+1

需要,沒有。這是一件好事和微不足道的事情,因此不值得*不做*做?是。 – ysth

回答

11

經驗上,大量模塊不會將版本號放在每個.pm文件中。如果您執行快照包(cpanp中的b)並查看生成的文件,您會看到該文件。在我的機器上,添加了模塊的Perl 5.16.2和批次包含7962個模塊,但其中包含2070個包含'undef'的版本(因此版本中大約有1/4的undef版本)。

就個人而言,我不喜歡這樣,所以所有的.pm文件我的模塊中 - DBD::Informix - 是版本在每個版本相同的版本(目前的版本是2013.0118,所有的.pm文件與2013.0118加蓋時間戳作爲版本號),但是有很多模塊(人員)會這樣做。

  • 您不必爲每個.pm文件提供一個版本號。
  • 總的來說,如果你確實爲每個.pm文件提供一個版本號,那會更好。
  • 我認爲在發行版中爲所有.pm文件提供相同的版本號是明智的。

在我看來,最糟糕的問題出現在模塊更新但有些不是時,所以CPANPLUS認爲模塊已過時,即使安裝最新版本不會改變任何內容。我目前有5個模塊,我非常想誘使它們全部刪除,特別是因爲我沒有真正使用它們。 (有時候,這是由一個文件被安裝在一個新位置觸發的,但我不認爲這是唯一的原因,我不確定是否會觸發它,但這是一個週期性發生的問題。)

相關問題