Perl中`$ array [x,y]`的含义是什么?

时间:2011-11-05 01:49:28

标签: arrays perl scalar

我知道@array[0,2,6]是一个包含多个值的数组。

我认为$scalar=3是一个具有单个标量值的变量。

然而,$array[3, 4]是什么?它是带有两个值的标量变量吗?

2 个答案:

答案 0 :(得分:10)

@array[0,2,6](或更一般地@array[ EXPR ])是数组切片。 (参见perldata)索引表达式在列表上下文中计算,返回的列表被视为索引列表,并且切片返回由这些索引标识的元素。

$array[ EXPR ]数组元素。索引表达式在标量上下文中计算,返回的值被视为索引,并返回由该索引标识的元素。

代码3,4在标量上下文中评估为4 - 请参阅perlop中的逗号运算符 - 因此$array[3,4]$array[4]相同,除了无效背景警告。

答案 1 :(得分:5)

试试看:

perl -E '@ar = (10,11,12,42);say $ar[1,2,3]'
42

1,2,3是一个清单。在标量上下文中,它返回其最后一个成员。