1
我不太熟悉Perl,但我正在使用它來製作一個簡單的腳本。該腳本將與Qualys進行交互,因此在查看有關Qualys API的信息時,我在查看其示例代碼的同時發現了此聲明。我已將它放在Pastebin.com(here)上,因此您不必下載它即可查看它。如果由於某種原因,你確實想自己下載它,here是一個鏈接到我爲那些想要能夠下載源代碼的頁面(它是「Get Map」之一)。瞭解這個對象創建語句
不管怎麼說,這裏是有我有點困惑的聲明(線路261):
$request = new HTTP::Request GET => $url;
我感到困惑的new
和GET => $url
部分語句。
- 我想我大部分明白是怎麼回事的語句
new
一部分,但如果有人能解釋HTTP::Request
工作與創建一個新的LWP::UserAgent
這將有助於澄清這怎麼行(我看着LWP :: UserAgent的在CPAN上,但他們在new
子程序解釋下的「KEY/DEFAULT」表對我來說沒有意義)。 - 我真的不知道發言中
GET => $url
部分發生了什麼。我的猜測是它正在爲HTTP::Request
或LWP::UserAgent
分配一個值,但我無法找到任何信息來備份該想法。
感謝您的執行說明。我從來不知道你可以通過將模塊放在包的前面來調用'new'。 – 2012-07-31 15:37:01
你可以用任何類或對象方法來做到這一點。例如'request $ ua $ request;'可以用來代替'$ ua-> request($ request)'。大多數人只將它用於'new'('new Class @ args'),因爲他們喜歡預先使用C++或Java,而對於'print'('print $ fh $ stuff')出於歷史原因。假設他們使用它。 – ikegami 2012-07-31 15:42:45
而且不建議使用間接方法語法,因爲它可能導致解析歧義。 – cjm 2012-07-31 16:01:12