perl - 将数组中的值取消引用到一行中声明的变量

标签 perl reference dereference

要从函数调用中检索参数,我通常会这样做

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 derefd实现相同目标的功能。

关于perl - 将数组中的值取消引用到一行中声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9737510/

相关文章:

Perl 三点运算符...示例

java - 当我使用 Reference 类时会发生什么以及多少开销?

c++ - 取消引用的 InputIterator 的地址? istream_iterator 的案例

python - 正则表达式可选匹配运算符 : how to apply to a string of characters?

perl - Perl 中的 glob() 函数用于获取文件名

python - python 是否像 perl 中那样有 "use strict;"和 "use warnings;"?

c++ - 下标对 const 的引用

ajax - jQuery 和 Ajax : ReferenceError: ajax is not defined

c++ - 我如何存储变量的地址并使用指针打印值

C++ 带括号的取消引用(带迭代器)