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