Perl - 如何将[a => 1,b => 2,...]等2个数组/列表连接到一个?

Enk*_*idu 2 arrays perl http-post httprequest

我需要加入2个perl数组/列表(抱歉,不知道它们是如何正确命名的)格式

[ a=>1, b=>2, c=>3 ] and [ d=>4, e=>5, f=6 ]
Run Code Online (Sandbox Code Playgroud)

并需要加入他们

[ a=>1, b=>2, c=>3, d=>4, e=>5, f=6 ]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我之前从未使用过这样的列表......

我需要HTTP :: Request :: Common

$ua->request(POST 'http://somewhere/foo', [foo => bar, bar => foo]);
Run Code Online (Sandbox Code Playgroud)

因为每个请求都有一组标准参数,另外还有自定义参数,具体取决于请求.当然,我不希望在每个请求中编写相同的内容,而只是定义公共参数一次.

Tnx为你提供帮助,罗伯特

澄清:

这是aprox.我想做的事:

my $result = httpPOST( $url, [ a=>1, b=2, ... ] );

sub httpPOST {
    my( $url, $params ) = @_; # ???
    my $ua = LWP::UserAgent->new;

    my $result  = $ua->request( POST $url, [ %auth, ????? ] );

    return $result->content;
}
Run Code Online (Sandbox Code Playgroud)

嗯......我没有得到合适的语法.请你帮助我一次!?;)

ike*_*ami 6

[ ... ]
Run Code Online (Sandbox Code Playgroud)

类似于

do { my @anon = ( ... ); \@anon }
Run Code Online (Sandbox Code Playgroud)

你有一个hash(%auth)和一个数组($params)的引用.


%hash 获取哈希的元素作为键和值的列表.

@array获取数组的元素,这意味着@$ref获取引用数组的元素.

所有你需要的是

 [ %auth, @$params ]
Run Code Online (Sandbox Code Playgroud)

请注意,您永远不应该使用->content.请->decoded_content改用.因此,您应该使用以下代码:

my $response  = $ua->request( POST $url, [ %auth, @$params ] );
return $response->decoded_content( charset => 'none' );
Run Code Online (Sandbox Code Playgroud)

(charset => 'none'解决破坏XML响应的错误.)