簡體   English   中英

Perl: LWP::UserAgent 關於傳遞參數的規則

[英]Perl: LWP::UserAgent Regarding rules for passing parameters

例如我有一個命令

curl -H "Content-Type: application/json" -H "Authorization: Bearer ACCESS_TOKEN" -X GET https://api.xxx/v1/datapackages/yyy

(1) 我很困惑何時在傳遞參數時使用 []。 下面哪一項是正確的,為什么?

沒有 [ ]

my $r2 = $ua -> get("https://api.xxx/v1/datapackages/yyy",
         'Content-Type' => 'application/json',
         Authorization => 'Bearer '.$token,
);

或 [ ]

my $r2 = $ua -> get("https://api.xxx/v1/datapackages/yyy",
         [
         'Content-Type' => 'application/json',
         Authorization => 'Bearer '.$token,
         ]
);

(2) 我看到有時引用參數有時不引用。 是否應該引用“授權”並寫為

和 ' '

'Authorization' => 'Bearer '.$token,

或沒有 ' '

Authorization => 'Bearer '.$token,

非常感謝!

get()文檔是這樣說的:

得到

my $res = $ua->get( $url ); my $res = $ua->get( $url , $field_name => $value, ... );

此方法將在給定的 URL 上發送 GET 請求。 可以提供更多參數來初始化請求的標頭。 它們作為單獨的名稱/值對給出。 返回值是一個響應對象。 有關它提供的接口的描述,請參閱HTTP::Response

所以,這只是談論將參數作為鍵/值對傳遞。 它沒有說明使用數組引用。 所以,如果我是你,我會堅持第一種方法。

“胖逗號”( => )記錄在perldoc perlop (因為它是一個運算符)中,它說:

=>操作符(有時讀作“胖逗號”)是逗號的同義詞,除了它會導致左邊的單詞以字母或下划線開頭並且僅由字母、數字和下划線。 這包括可能被解釋為運算符、常量、單個數字 v 字符串或函數調用的操作數。 如果對此行為有疑問,可以明確引用左操作數。

否則,根據上下文, =>運算符的行為與逗號運算符或列表參數分隔符完全相同。

基本上,如果它左邊的東西是一個單詞(我的意思是一系列字母數字字符和下划線),那么你可以省略它周圍的引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM