首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在perl中,美元和数字符号是如何协同工作的?

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

Stack Overflow用户
提问于 2011-12-24 01:20:29
回答 3查看 9.4K关注 0票数 21

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

代码语言:javascript
复制
my @array = (1, 2, 3);
print $array[@array - 1];

但今天我偶然发现了这段代码:

代码语言:javascript
复制
my @array = (1, 2, 3);
print $array[$#array];

我在文档里找不到任何关于这件事的东西。$#构造到底是什么?那是一个操作员吗?它是如何工作的,它比第一段代码更快吗?它总是返回最大数组索引吗?它是不是被弃用了?

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-24 01:24:54

perldoc perldata, section "Scalar Values"中记录了这一点。简而言之,$#array@array的最后一个索引。至于它是如何工作的-它有点像运算符,但只是和$@是运算符一样。可以把它看作是特殊的语法。数组的最后一个索引恰好是“有一个名字”。它是一个你可以读取和赋值的变量。

票数 26
EN

Stack Overflow用户

发布于 2011-12-24 01:24:06

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

顺便说一句,您还可以使用

代码语言:javascript
复制
$array[-1]

去拿最后一件东西。

票数 8
EN

Stack Overflow用户

发布于 2011-12-24 01:23:52

这就给出了最后一个索引。它被记录在perldata - http://perldoc.perl.org/perldata.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8618858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档