我在perl中有以下表达
@var1 = [($a, $b)]
任何人都可以帮我推断存储在var1中的值。
答案 0 :(得分:4)
@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]
也会做同样的事情。答案 1 :(得分:1)
@ var1是一个数组的数组。所以它唯一的内容是另一个包含两个值的数组,$ a和$ b。
$a2 = $var1[0][0];
$b2 = $var1[0][1];