我使用Term::ANSIColor
在我的Perl腳本做終端輸出的彩色化,我現在用的是colorstrip
功能,其僅在2.01 Term::ANSIColor
版本中添加,根據更新日誌。那麼,有沒有辦法讓我的腳本自動die
有相應的錯誤信息,如果它沒有找到至少那個版本的Term::ANSIcolor
?如何我在perl腳本使用Perl模塊的某個版本(或更高版本)?
7
A
回答
21
剛:
use Term::ANSIColor 2.01;
使用模塊版本列表
如果版本的說法是模塊和列表之間存在,則使用將調用將Module中的VERSION方法與給定版本作爲參數一起使用。如果給定的版本比變量$模塊:: VERSION的值大的默認版本的方法,從通用類繼承,嘎嘎叫着。
7
大多數模塊定義包變量$VERSION
。
use Term::ANSIColor;
die "Sorry, this program needs Term::ANSIColor >= v2.01!\n"
unless $Term::ANSIColor::VERSION >= 2.01;
這也是指定最大版本模塊的一個很好的方式。
use Module::Foo;
die "You need an *older* version of Module::Foo that ",
"still has the &barbaz method defined"
if $Module::Foo::VERSION >= 0.47;
2
只需指定要使用的版本:如果版本不是至少2.13
use Some::Module 2.13;
,該操作將失敗。
您可以用可用的命令行版本實驗:
perl -MSome::Module=9999 -e 'exit 0'
這通常會在錯誤信息中顯示(除非你想使用該模塊發生錯誤的版本號死擁有5位或更長的版本號,或者除非模塊類似於strict
,並且不喜歡通過命令行加載版本號或像URI
(請參閱註釋以瞭解詳細信息))。
$ perl -MFile::Find=999 -e 'exit 0'
File::Find version 999 required--this is only version 1.07 at
/usr/perl5/5.8.4/lib/Exporter/Heavy.pm line 121.
BEGIN failed--compilation aborted.
$ perl -e 'use File::Find 999; exit 0'
File::Find version 999 required--this is only version 1.07 at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
$
在我通常不使用的機器上運行,因此是過時的Perl版本。
相關問題
- 1. Perl模塊版本
- 2. Perl模塊,版本信息
- 3. 從perl腳本調用一個HTTP URL - Perl的版本5.8.4
- 4. 如何從perl腳本本身打印出正在運行的perl版本?
- 5. 如何更新Perl模塊的SVN版本
- 6. 需要更新版本的Perl的Perl模塊在Windows上可用
- 7. 在不同的perl版本
- 8. 如何在CPAN上處理需要Perl devel版本的模塊?
- 9. 如何在Perl模塊中管理不同的API版本?
- 10. Perl:我如何在linux中設置.pl文件的perl版本
- 11. 如何使用批處理腳本或Perl增加字母版本?
- 12. 使用Xcode 6或更高版本或Application Loader 2.9.1或更高版本提交您的版本
- 13. 如何在Perl腳本中包含所有/某些「子模塊」?
- 14. 檢查版本在Perl
- 15. 在我的perl腳本中運行一個非perl腳本?
- 16. 如何找到已安裝的Perl模塊的版本?
- 17. 如何讓eclipse perl項目使用特定的perl版本?
- 18. 使用perl模塊的當前工作目錄版本
- 19. 如何找到Perl 6模塊的版本和權限?
- 20. 如何判斷Perl模塊的最低版本號?
- 21. 如何從另一個perl cgi腳本調用perl cgi腳本
- 22. 在CentOS 6.6上更新Perl版本
- 23. 如何在Perl中指定包版本?
- 24. cygwin,perl,dos版本的abspath()?
- 25. Python版本的Perl = || (= OR)
- 26. 如何在腳本中指定僅使用特定版本的perl?
- 27. 如何使用perl腳本更新nohup.out?
- 28. 如何指定Perl的Inline :: Python模塊正在使用的Python版本?
- 29. Cassandra 3.0及更高版本需要Java 8u40或更高版本
- 30. 使用perl確定Microsoft Windows的版本?
這是一個好辦法做到這一點。當您在導入列表中提供版本時,您將依賴實際處理此操作的導入方法。不僅如此,導入技術只需要該版本或更高版本。如果你想要一個特定的版本或版本的範圍,你會得到這種更通用的技術。 – 2011-01-23 07:33:30
實際上,`import`方法不需要任何幫助 - 當你使用`use`或`require`和一個版本號時,就會產生一個調用'VERSION`方法。但是每個沒有特別覆蓋它的包都會從`UNIVERSAL`中獲得一個合適的`VERSION`方法。 – hobbs 2011-01-23 10:22:36