今天,我遇到了一个问题,需要我确定perl中数组的最大索引。我曾经这样做:
my @array = (1, 2, 3);
print $array[@array - 1];
但是今天我偶然发现了以下代码:
my @array = (1, 2, 3);
print $array[$#array];
我在文档中找不到任何与此相关的内容。那
$#
构造到底是什么?那是运营商吗?而且它是如何工作的,它比第一段代码快吗?是否总是返回最大数组索引?是否已弃用?我知道有很多问题,但是可以将它们全部归结为一个,这就是我真正想知道的:它是如何工作的?
最佳答案
记录在perldoc perldata, section "Scalar Values"中。简而言之,$#array
是@array
的最后一个索引。至于它是如何工作的,它有点像一个运算符,但是只有$
和@
才是运算符。将其视为特殊语法。数组的最后一个索引恰好是“有一个名字”。您可以读取并分配该变量。
关于perl - 在Perl中,美元和数字符号如何一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8618858/