前言:我知道如何加载特定版本的模块。这不是我追求的目标。
我正在编写一个脚本来从我公司的内部服务器检索一些格式化为JSON的文本/纯文本数据。我使用LWP进行数据检索。
我已经完成了所有脚本,但有一个问题。
我在RHEL5上写这个,它使用Perl 5.8.8和LWP 5.805。根据下面的页面,如果我想直接将响应的内容输出到文件,我应该使用:content_file => filename
但是,请注意以下内容。
注意这个":content_file"旧版本不支持选项 LWP的版本,所以你应该考虑添加使用LWP 5.66;去检查 LWP版本,如果您认为您的程序可能在具有的系统上运行 旧版本。
如果您需要与较旧的LWP版本兼容,请使用此版本 语法,它做同样的事情:
use HTTP::Request::Common; $response = $ua->request( GET($url), $filespec );
由于这是RHEL 5,我必须使用较旧的LWP格式,但我想制作我的脚本,以便在RHEL 6及更高版本上运行时使用新样式而不是旧样式。支持:content_file
的新版LWP。
因此,我需要知道如何检测模块版本,更重要的是,我需要知道最早支持的LWP版本是什么:content_file
答案 0 :(得分:6)
版本号LWP::UserAgent
位于包变量$LWP::UserAgent::VERSION
中,或者如果您已编写$LWP::VERSION
来加载模块,则可以使用use LWP
但是,没有理由对模块的不同版本使用不同的方法;向后兼容的替代方案
my $response = $ua->request( GET($url), $filespec )
可以在任何版本上正常工作
答案 1 :(得分:6)