Fra*_*ger 6 perl reference dereference
我有一个列表,其中包含我想传递给函数的参数.我该如何调用该功能?
例如,假设我有这个功能:
sub foo {
my ($arg0, $arg1, $arg2) = @_;
print "$arg0 $arg1 $arg2\n";
}
Run Code Online (Sandbox Code Playgroud)
让我们说我有:
my $args = [ "la", "di", "da" ];
Run Code Online (Sandbox Code Playgroud)
如何在foo
不写作的情况下打电话foo($$args[0], $$args[1], $$args[2])
?
fri*_*edo 10
您可以通过粘贴@
在它前面来取消引用数组引用.
foo( @$args );
Run Code Online (Sandbox Code Playgroud)
或者如果你想更明确:
foo( @{ $args } );
Run Code Online (Sandbox Code Playgroud)
这应该这样做:
foo(@$args)
Run Code Online (Sandbox Code Playgroud)
这实际上不是一个apply
功能.该语法只是将数组引用取消引用回到plain数组.man perlref告诉你更多关于referecences.