2016-11-17 57 views
8

我讀到過,在所有的Perl腳本中總是包含一個$VERSION數字被認爲是很好的做法,但我從來沒有完全理解這個目的。

通過在腳本中包含版本號,您真的獲得了什麼?

+0

你從哪裏讀到的?也許還有其他一些重要的背景。 –

+0

@briandfoy,老實說我不記得了。 :(我前段時間在某個地方讀過它,並且剛剛在所有腳本中加入了一個版本號,因此從未質疑原因,但我從來不知道其目的。 – tjwrona1992

回答

8

只有模塊,只有推到CPAN的模塊才能真正受益於指定$VERSION。在腳本中沒有太多用處,除非使用熟悉的名稱,而不是創建新的腳本,如果您希望腳本的版本可以訪問的話。

主要用途:

  • CPAN使用它作爲分發的版本,它允許索引的不同版本相同的分佈。

  • cpancpanm使用它來檢查安裝的模塊是否具有足夠高的級別以滿足所需的最小版本依賴性。

如前所述布賴恩·d FOY,也可以通過use Foo 1.23;檢查,但大多數人都避免這種情況有利於在其分佈的META文件中指定的依賴關係的需要的版本。這允許cpancpanm根據需要更新依賴項(如果使用use Foo 1.23;將導致安裝在測試期間失敗)。由於缺少對該功能的使用,這幾乎不是主要用途。

7

您可以在use語句中指定一個模塊的最低版本:

use Foo 1.23; 

當該模塊,它着眼於$VERSION變量Perl的負載,以檢查它的等於或大於這個數字更大。這樣你就可以獲得正確的功能和修復。

CPAN客戶端使用$VERSION來確定您是否是最新的或者是否應該安裝最新版本的模塊。

對於程序或腳本,您通常不需要$VERSION