Perl:将数组别名为 array_ref

Perl: alias an array to an array_ref

我想做:

$array_ref = [ 1, 2, 3];
alias @array @$array_ref;
$array[0] = 4;
# $array_ref->[0] should now be 4

换句话说:我有一个数组的引用,但我想像处理普通数组一样处理它。

背景

这是 GNU Parallel 的潜在扩展。在 GNU Parallel 中,用户可以提交要在内部数据结构上评估的 perl 表达式。至少可以说,访问 args 数组很麻烦,所以我想简单地使用 @arg 代替。

Data::Alias 满足您的需求。

use Data::Alias;
my $array_ref = [1, 2, 3];
my @array;
alias @array = @$array_ref;
$array[0] = 4;
print $array_ref->[0];

输出:4