2012-10-22 19 views

回答

7

最終,有提供額外的信息沒有壞​​處給用戶,所以如果你知道甚至是一個非常舊的版本都不兼容,你不妨提及它。

但是Perl 4被認爲是一種獨立的語言。沒有必要提及這一點;沒有人會期望一個C++程序在C中運行。

從這個論壇上的人們的問題來看,5.8仍然被廣泛使用。所以如果你有興趣製作一個經過充分測試並儘可能廣泛使用的模塊,那麼我認爲至少在測試中回溯到這一點是個好主意。

如果您需要運行某個版本,在模塊中使用require VERSION可能有助於執行此要求。這樣,如果用戶嘗試在過時的版本上運行模塊,用戶會收到明確的錯誤消息。

+2

我同意「說你的要求並沒有什麼壞處」,我可能是一個老屁,但我會傾向於提及任何要求> 5.6.1(即如果你的代碼工作在5.8而不是5.6,你提到這一點)。也就是說,我希望任何人編寫新代碼的最早版本是5.8.3。 – hobbs

+0

[*堆棧溢出*不是論壇](http://meta.stackexchange.com/a/92115)。 –

3

www.perl.org:

當前版本:Perl的5.16.1

因此,也許任何超過5.10將是很好的提。

我用現代的Perl ::

提要

現代Perl程序使用幾個模塊來實現的Perl和CPAN的附加功能。相反,複製和粘貼這些線條的運用,而不是隻寫一個:

use Modern::Perl 

爲了向前兼容,我建議你指定一個年度爲單可選進口標籤。例如: 使用Modern :: Perl'2009'; 使用Modern :: Perl'2010';

...都讓5.10的特點,...

還看到: 的perldoc現代:: Perl或https://metacpan.org/module/Modern::Perl

+1

甚至5.8以上的任何東西,我經常在生產服務器上看到這個版本。 – Bohdan

2

如果您知道需要最低版本,爲什麼不記錄它?通常在README文件中記錄依賴關係,並在Makefile.PL或Build.PL中將其指定給安裝程序。

5.14和5.16是Perl中唯一支持的兩個版本,但許多版本仍然使用5.8和5.10。我偶爾聽到5.5和5.6的信息。

+0

由誰支持?只有最新的穩定版纔有可能獲得官方的修補程序版本。 [ActiveState](http://www.activestate.com/activeperl/downloads)免費支持5.14和5.16版本,並將銷售對舊版本的支持。真正重要的是CPAN模塊支持什麼。 – Schwern

+0

@Schwern,Perl5搬運工。不,最新的*兩個*穩定版本得到bugfix版本。 (例如幾天前發佈的Perl 5.14.3) – ikegami

+0

哦,我沒有看到他們實際上做了另一個5.14版本! – Schwern

4

記錄您實際測試的最古老的Perl,無論可能如何。不要猜測它;正如其他人所提到的,在您的代碼中使用use v5.x和模塊元數據聲明您的最低版本。

你應該走多遠?無論您願意支持和測試的最老版本。這是你的時間和潛在的挫折。越往後走,你錯過的功能越多,CPAN模塊工作的越少,以及需要解決的更多錯誤。

如果您使用線程或Unicode,請使用最新的可能。 Unicode支持一直在改進。線程從5.8開始非常麻煩,在5.10開始穩定,並且自此以後變得更好。

5.10.1是一個非常安全的最低限度,你得到的東西像autodie, parent, compression and archive modules, defined-or, say, given/when, smart match and named captures。 5.10.1特別是因爲it fixes how smart match works in ways incompatible with 5.10.0。這是what comes with Debian stable,這是一個很好的兼容性較低的欄。這是您可以從大多數CPAN模塊獲得可靠支持的最早階段。

之前的下一步是5.8.9系列中的最後一個。這是您可以在任何類似理智的生產環境中看到的最古老的Perl。你失去了很多功能,線程不太可能工作得很好,Unicode仍然有點不穩定,並且CPAN模塊開始中斷。

在此之前是5.8.4,這是最早發佈的Perl中已知的主流操作系統Solaris。這是handy list of operating system versions and what Perl they shipped with

之前是5.6.1。 5.6.2雖然包含很多錯誤修復,但從未被廣泛採用。在這一點上,你在硬殼,塵土飛揚的裝置中幾層都不會升級。線程和Unicode支持存在,但以非常不同和非常破碎的形式。許多CPAN模塊不支持5.6。

5.005_03和5.004_04是下一個搖搖欲墜的巖壁。此時正變成受虐狂或學術演習。你可能會發現一些非常老的安裝,或者一些「Perl在添加線程和Unicode之前更好」的死板。

5.004之前的任何內容和非常常見的語法片段,如foreach my $foo不可用。

+0

+1有關以前版本的許多有趣的信息。 – dan1111

相關問題