要从函数调用中检索参数,我通常会这样做
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,2], [3,4] );
sub foo {
my ( $x1, $x2, $y1, $y2 ) = map @$_, @_;
...
}
map
需要 @_
并使用 @$_
将其每个元素取消引用到一个数组中手术。也可以使用
List::Gen
的 deref
或 d
实现相同目标的功能。
关于perl - 将数组中的值取消引用到一行中声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9737510/