前言:我知道如何加载特定版本的模块。这不是我想要的。
我正在编写一个脚本,从我公司的内部服务器中检索一些格式为JSON的文本/普通数据。我在用LWP进行数据检索。
我已经完成了所有脚本本身,但有一个问题。
我是在RHEL5上写这篇文章的,它在LWP 5.805中使用了Perl 5.8.8。根据下面的页面,如果我想直接将响应的内容输出到一个文件,我应该使用:content_file => filename
然而,注意到以下情况。
请注意,这个":content_file“选项在较早版本的LWP中不受支持,因此您应该考虑添加use 5.66;如果您认为您的程序可能运行在具有旧版本的系统上,则检查LWP版本。 如果您需要与较早的LWP版本兼容,请使用此语法,这与此相同:
use HTTP::Request::Common; $response = $ua->request( GET($url), $filespec );
因为这是RHEL 5,所以我必须使用旧的LWP格式,但是我想让脚本在RHEL 6和更高版本上运行时使用新的样式而不是旧的样式,后者使用的是支持:content_file
的更新版本。
因此,我需要知道如何检测模块版本,更重要的是,我需要知道支持:content_file
的最早LWP版本是什么?
发布于 2016-12-14 01:05:20
LWP::UserAgent
的版本号在包变量$LWP::UserAgent::VERSION
中,如果您已经编写了加载模块的use LWP
,则可以使用$LWP::VERSION
。
但是,没有理由对不同版本的模块使用不同的方法;向后兼容的替代方案。
my $response = $ua->request( GET($url), $filespec )
在任何版本上都能正常工作
https://stackoverflow.com/questions/41133049
复制相似问题