Mat*_*eck 7 perl reference dereference
要从函数调用中检索参数,我通常会这样做
use strict;
use warnings;
foo([1,2],[3,4]);
sub foo{
my ($x, $y) = @_;
...
}
Run Code Online (Sandbox Code Playgroud)
在示例中,$ x和$ y现在分别引用了一个数组.如果我想轻易使用这些数组中的变量,我首先取消引用它们.
...
my ($x1, $x2) = @{$x}[0,1];
# ...same for $y
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以取消引用@_(或者,实际上是任何其他数组)中的参数,并将它们返回到一行中声明的变量列表中?
foo ( [1,2], [3,4] );
sub foo {
my ( $x1, $x2, $y1, $y2 ) = map @$_, @_;
...
}
Run Code Online (Sandbox Code Playgroud)
使用该操作map将@_其每个元素取出和取消引用到数组中@$_.
人们还可以使用List::Gen的deref或者d功能来达到同样的目的.
| 归档时间: |
|
| 查看次数: |
459 次 |
| 最近记录: |