Perl动态参数到函数

时间:2017-02-02 14:26:03

标签: arrays perl function parameters

我有一个我无法修改的功能,在这个功能中完成了这样的事情

 foreach my $param (@_) {
    .....

现在我想用动态参数调用这个函数。 我有一个从

获得的对象
$self->{'parameter'} = from_json ( $self->{'cgi'}->param('POSTDATA') );

现在我想做这样的事情

function(para1, $self->{'parameter'})

如果我手动操作它可以工作

function(para1, 1, 1, 1)

我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果$self->{parameter}是数组引用,则可以包含解除引用的数组,在大多数 * 情况下,Perl将展平列表。

$self = from_json ...;                  # $self->{parameter} = [1,2,3];
function($p1,@{$self->{parameter}});    # equiv to function($p1,1,2,3)

* - Perl不会压缩列表的某些情况functions that have a @ prototype或Perl builtin function that expects an ARRAY而不只是LIST