美元和数字符号在perl中是如何工作的?

美元和数字符号在perl中是如何工作的?,perl,syntax,operators,Perl,Syntax,Operators,今天,我遇到了一个问题,需要用perl确定数组的最大索引。我以前是这样做的: my @array = (1, 2, 3); print $array[@array - 1]; 但今天我偶然发现了这条代码: my @array = (1, 2, 3); print $array[$#array]; 我在文件里找不到关于那件事的任何东西。那到底是什么构造?是接线员吗?它是如何工作的,它比第一段代码快吗?它是否总是返回最大数组索引?它是否已被弃用 我知道有很多问题,但它们都可以用一个来概括,这就是

今天,我遇到了一个问题,需要用perl确定数组的最大索引。我以前是这样做的:

my @array = (1, 2, 3);
print $array[@array - 1];
但今天我偶然发现了这条代码:

my @array = (1, 2, 3);
print $array[$#array];
我在文件里找不到关于那件事的任何东西。那到底是什么构造?是接线员吗?它是如何工作的,它比第一段代码快吗?它是否总是返回最大数组索引?它是否已被弃用


我知道有很多问题,但它们都可以用一个来概括,这就是我真正想知道的:它是如何工作的?

它给出了最后一个索引。perldata中记录了它-

中的第一个示例中提到了该用法。它表示数组中最后一项的索引

顺便说一句,你也可以使用

$array[-1]
获取最后一项。

中记录了这一点。简而言之,
$#array
@array
的最后一个索引。至于它是如何工作的——它有点像一个操作符,但只有
$
@
是操作符。可以将其视为特殊语法。数组的最后一个索引恰好是“有名称”。这是一个可以读取和分配的变量。

$#array将告诉您最后一个索引的编号,但如果您只想获取最后一个项目(而不关心其实际索引),则使用
$array[-1]
相关问题: