【发布时间】:2017-07-18 02:15:45
【问题描述】:
我在 perl 中有以下表达式
@var1 = [($a, $b)]
谁能帮助我尊重存储在 var1 中的值。
【问题讨论】:
-
你为什么首先将数组引用分配给数组?
标签: arrays perl reference dereference
我在 perl 中有以下表达式
@var1 = [($a, $b)]
谁能帮助我尊重存储在 var1 中的值。
【问题讨论】:
标签: arrays perl reference dereference
@var1 是一个包含单个元素的数组。该单个元素 ($var[0]) 包含对另一个数组的引用。该引用数组有两个元素,包含变量$a 和$b 的值。
所以$var[0] 包含一个数组引用。要从数组引用中获取被引用数组的元素,我们使用查找箭头->。
print $var[0]->[0]; # The first element in the referenced array
print $var[0]->[1]; # The second element in the referenced array
我们可以在这里使用一个额外的语法细节。当我们有两组仅由一个查找箭头分隔的查找括号时,我们可以省略该箭头。所以表达式变成了。
print $var[0][0];
print $var[0][1];
关于您的代码的两点:
$a 和 $b 是用于排序子例程的特殊变量。在其他地方使用它们是个坏主意。@var1 = [($a, $b)]) 中,括号是不必要的。只要@var1 = [$a, $b] 也会做同样的事情。【讨论】:
@var1 是一个数组的数组。所以它唯一的内容是另一个包含两个值的数组,$a 和 $b。
$a2 = $var1[0][0];
$b2 = $var1[0][1];
【讨论】: