我使用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