perl - 在Perl中,美元和数字符号如何一起工作?

标签 perl syntax operators

今天,我遇到了一个问题,需要我确定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/

相关文章:

haskell - 如何在 Haskell 源文件中包含多行编号?

python - 什么是 `1..__truediv__` ? Python 是否有 .. ("dot dot") 表示法语法?

java - += 和 =+ 有什么区别?

python - 我将如何在Perl中读取此数据结构?具有包含包含列表的列表的键的字典/哈希。 Python::Inline给我错误

perl - 如何向 mojolicious 路线添加多个 over 方法?

perl - 如何从Moose构造函数报告错误?

ruby - Ruby 上的 <<- 运算符,它在哪里记录?

perl - 在 perl 中,\*STDIN 与 STDIN 相同吗?

java - java中字符串的语法匹配

c++ - 重载运算符%