Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道@array[0,2,6]是一个具有多个值的数组。
@array[0,2,6]
而且我相信这$scalar=3是一个具有单个标量值的单个变量。
$scalar=3
然而,什么是$array[3, 4]?它是具有两个值的标量变量吗?
$array[3, 4]
@array[0,2,6](或更一般地@array[ EXPR ])是一个数组 slice。(参见perldata)索引表达式在列表上下文中进行评估,返回的列表被视为索引列表,并且由这些索引标识的元素由切片返回。
@array[ EXPR ]
$array[ EXPR ]是一个数组元素。索引表达式在标量上下文中求值,返回值被视为一个索引,并返回由该索引标识的元素。
$array[ EXPR ]
代码在标量上下文中3,4求值- 请参阅perlop4中的逗号运算符- 所以除了 void context 警告之外,它是相同的。$array[3,4]$array[4]
3,4
4
$array[3,4]
$array[4]
试试看:
perl -E '@ar = (10,11,12,42);say $ar[1,2,3]' 42
1,2,3 是一个列表。在标量上下文中,它返回其最后一个成员。