我对Perl不太熟悉,但我正在使用它来编写一个简单的脚本。此脚本将与Qualys连接,因此在查找有关Qualys API的信息时,我在查看示例代码时发现了此语句。我把它放在Pastebin.com(here)上,所以你不必下载它来查看它。如果由于某种原因你确实想自己下载,here是一个指向我想要能够下载源代码的页面的链接(它是“获取地图”)。
无论如何,这是声明(第261行),让我有点困惑:
$request = new HTTP::Request GET => $url;
我对声明的new
和GET => $url
部分感到困惑。
new
部分正在发生什么,但如果有人能解释HTTP::Request
如何创建新的LWP::UserAgent
有助于澄清这一点line(我在CPAN上查看了LWP :: UserAgent,但是他们在new
子例程解释下的“KEY / DEFAULT”表对我来说没什么意义。)GET => $url
部分发生了什么。我的猜测是它在HTTP::Request
或LWP::UserAgent
分配了一个值,但我找不到任何信息来支持这个想法。答案 0 :(得分:6)
给定的行等同于
$request = HTTP::Request->new(GET => $url);
也可以写成
$request = HTTP::Request->new('GET', $url);
该示例使用了间接方法语法。
HTTP::Request
和LWP::UserAgent
之间的联系在CPAN documentation中勾画如下:
require HTTP::Request;
$request = HTTP::Request->new(GET => 'http://www.example.com/');
$ua = LWP::UserAgent->new;
$response = $ua->request($request);
所以HTTP:.Request->new(...)
创建了一个新的请求,可由用户代理执行