[英]How can I pass the elements in a Perl array reference as separate arguments to a subroutine?
我有一个列表,其中包含我想传递给函数的参数。 我该如何调用该功能?
例如,假设我有这个功能:
sub foo {
my ($arg0, $arg1, $arg2) = @_;
print "$arg0 $arg1 $arg2\n";
}
让我们说我有:
my $args = [ "la", "di", "da" ];
如何在不写foo
情况下调用foo
foo($$args[0], $$args[1], $$args[2])
?
您可以通过在其前面粘贴@
来取消引用数组引用。
foo( @$args );
或者如果你想更明确:
foo( @{ $args } );
尝试这个:
foo(@$args);
foo(@$args);
或者,如果你有foo
的引用:
my $func = \&foo;
...
$func->(@$args);
这很简单。 FOO(@ {$ ARGS})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.