在 Perl 中,数组索引 -1
表示最后一个元素:
@F=(1,2,3);
print $F[-1]; # result: 3
您也可以使用
$#
符号代替,这里$#F
:@F=(1,2,3);
print $F[$#F]; # result: 3
那么为什么不
-1
和 $#F
当我想指定范围中的最后一个元素时,给出相同的结果:print @F[1..$#F]; # 23
print @F[1..-1]; # <empty>
数组
@F[1..-1]
应该真正包含来自元素 1
的所有元素到最后一个,不是吗?
最佳答案
您的问题是 @a[b..c]
语法涉及两个不同的操作。第一 b..c
被评估,返回一个列表,然后 @a[]
使用该列表进行评估。范围运算符 ..
不知道它用于数组下标,因此就它而言,1 和 -1 之间没有任何内容。它返回空列表,因此数组返回一个空切片。
关于perl - 为什么我不能写@F[1..-1] 来获取元素 1..last?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1150153/