要从
函数调用中检索参数,我通常会这样做
use strict;
use warnings;
foo([1,2],[3,4]);
sub foo{
my ($x,$y) = @_;
...
}
在示例中,$x和$y现在分别引用了一个数组.如果我想轻易使用这些数组中的变量,我首先取消引用它们.
...
my ($x1,$x2) = @{$x}[0,1];
# ...same for $y
我想知道是否有办法取消引用@_(或实际上,任何其他数组)中的参数并将它们返回到一行中声明的变量列表?
foo ( [1,4] );
sub foo {
my ( $x1,$x2,$y1,$y2 ) = map @$_,@_;
...
}
映射使用@_并将其每个元素取消引用到具有@ $_操作的数组中.
也可以使用List::Gen
的deref或d函数来实现相同的目标.