如何在 Perl 中的函数调用中将哈希扩展为参数列表?我正在搜索 Python 语法的 Perl 等效项:somefunc(**somedict)
或 somefunc(*somelist)
。这在 Perl 中可能吗?
最佳答案
在 Perl 中,所有函数参数都作为列表传递并存储在特殊数组变量 @_
中。您可以将这些值复制到其他数组,或直接复制到散列中(就像使用任何数组/列表一样)。
如果您正在编写函数,则可以将参数直接传递到数组或散列中:
sub hashFunc {
my %args = @_;
....
}
sub arrayFunc {
my @args = @_;
...
}
要调用这样的函数,只需将它们传递为列表或散列即可:
hashFunc(arg1 => 'someVal', arg2 => 'someOtherVal');
arrayFunc('someVal', 'someOtherVal');
如果变量中已经有参数,只需传递它们,Perl 将数组/散列压平到参数列表中:
hashFunc(%someHash);
arrayFunc(@someArray);
关于perl - 如何在 Perl 中的函数调用中将哈希扩展为参数列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557061/