哪一個是最高的Perl版本,在文檔中我不會再提到它了?例如我從未見過:需要Perl 4或更高版本。模塊:我應該何時在文檔中提及所需的Perl版本?
回答
最終,有提供額外的信息沒有壞處給用戶,所以如果你知道甚至是一個非常舊的版本都不兼容,你不妨提及它。
但是Perl 4被認爲是一種獨立的語言。沒有必要提及這一點;沒有人會期望一個C++程序在C中運行。
從這個論壇上的人們的問題來看,5.8仍然被廣泛使用。所以如果你有興趣製作一個經過充分測試並儘可能廣泛使用的模塊,那麼我認爲至少在測試中回溯到這一點是個好主意。
如果您需要運行某個版本,在模塊中使用require VERSION
可能有助於執行此要求。這樣,如果用戶嘗試在過時的版本上運行模塊,用戶會收到明確的錯誤消息。
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
甚至5.8以上的任何東西,我經常在生產服務器上看到這個版本。 – Bohdan
如果您知道需要最低版本,爲什麼不記錄它?通常在README文件中記錄依賴關係,並在Makefile.PL或Build.PL中將其指定給安裝程序。
5.14和5.16是Perl中唯一支持的兩個版本,但許多版本仍然使用5.8和5.10。我偶爾聽到5.5和5.6的信息。
記錄您實際測試的最古老的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
不可用。
+1有關以前版本的許多有趣的信息。 – dan1111
- 1. 我應該如何分發預構建的perl模塊,以及我爲哪個版本的perl構建?
- 2. Perl模塊版本
- 3. 我應該如何在Perl中維護我的對象模塊?
- 4. 如何在CPAN上處理需要Perl devel版本的模塊?
- 5. Perl模塊,版本信息
- 6. 在內核模塊makefile中提及gcc版本
- 7. 我應該如何調用位於perl模塊中的方法?
- 8. 我應該能夠使用新的5.12軟件包版本語法而不指定所需的Perl版本嗎?
- 9. 如何在匹配perl文本後提取所需的行?
- 10. 需要更新版本的Perl的Perl模塊在Windows上可用
- 11. 如何在XML文檔中提取HTML的文本版本?
- 12. 如何我在perl腳本使用Perl模塊的某個版本(或更高版本)?
- 13. 如何在Perl模塊中管理不同的API版本?
- 14. Perl:我如何在linux中設置.pl文件的perl版本
- 15. 發行版中的每個Perl模塊是否都需要有版本號?
- 16. 我應該如何安裝多個版本的Perl?
- 17. 我應該如何控制Perl Moose對象的版本?
- 18. 我應該在Windows上使用哪個版本的Perl?
- 19. HTML文檔的所需標籤應該如何縮進?
- 20. 模塊::安裝需要,以及跳過版本
- 21. 我應該如何組織很多Perl模塊?
- 22. 我應該如何加載我自己模塊中的文件?
- 23. 我應該使用「使用5.12.0;使用警告;」在perl模塊?
- 24. 所有perl版本是否都支持舊模塊?
- 25. 如何在Perl腳本中包含所有/某些「子模塊」?
- 26. 在Active Perl中安裝早期版本的模塊
- 27. 何時應該將Python腳本分成多個文件/模塊?
- 28. 我們如何從父模塊中提取所有子模塊?
- 29. 當安裝兩個版本的模塊時,Perl會做什麼?
- 30. 我應該在Android Studio中版本應用/構建文件嗎?
我同意「說你的要求並沒有什麼壞處」,我可能是一個老屁,但我會傾向於提及任何要求> 5.6.1(即如果你的代碼工作在5.8而不是5.6,你提到這一點)。也就是說,我希望任何人編寫新代碼的最早版本是5.8.3。 – hobbs
[*堆棧溢出*不是論壇](http://meta.stackexchange.com/a/92115)。 –