【问题标题】:Perl Dynamic Parameter to FunctionPerl 动态参数到函数
【发布时间】:2017-02-02 14:26:02
【问题描述】:

我有一个无法修改的函数,在这个函数中完成了类似的操作

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

现在我想用动态参数调用这个函数。 我有一个我从中得到的对象

$self->{'parameter'} = from_json ( $self->{'cgi'}->param('POSTDATA') );

现在我想做这样的事情

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

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

function(para1, 1, 1, 1)

我该怎么做?

【问题讨论】:

    标签: arrays perl function parameters


    【解决方案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

    【讨论】:

    • 谢谢!在第一次测试之后,它看起来就像你说的那样
    • 一个问题。写 $self->{'parameter'} 和 $self->{parameter} 没有 ' ' 有区别吗?
    • 只是风格问题。
    猜你喜欢
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 2015-02-16
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2014-01-16
    相关资源
    最近更新 更多