旧版本的Perl是否有不同的数组索引规则?

MrJ*_*anx 3 arrays perl

我目前正在努力将1996/8年编写的一些Perl代码翻译成Python.我是在想.当前的Perl似乎对数组有基于0的索引(即第一个元素是:

Array1[0]
Run Code Online (Sandbox Code Playgroud)

例如,最后一个元素是

Array1[$#Array1-1]   
Run Code Online (Sandbox Code Playgroud)

(我认为......更好地理解Perl而不是编写它)
只是想知道在早期版本中他们是否有第一个

Array1[1]
Run Code Online (Sandbox Code Playgroud)

最后一个

Array1[$#Array1]
Run Code Online (Sandbox Code Playgroud)

只是想知道这在发展的某个阶段是否有所改变?
这可能是我自己的愚蠢,在这种情况下,我只需要更好地理解我对该程序的理解,但如果有人能指出我是哪一个,我将不胜感激.

谢谢

Сух*_*й27 11

不,第一个元素总是$Array1[0]和最后是$Array1[$#Array1]$Array1[-1]$Array1[@Array1 -1]

第一个元素的例外仅在更改默认值时 $[

此变量存储数组中第一个元素的索引,以及子字符串中第一个字符的索引.默认值为0,但理论上可以将其设置为1以使Perl在下标时以及在评估index()和substr()函数时更像awk(或Fortran).

..助记符:[开始下标. 在Perl v5.12.0中推荐使用.

  • `$ [`仅在5.12中被正式弃用,但在此之前很久就被强烈劝阻,并经历了几次修改以限制它们.(首先,它从一个全局变为一个词汇pragma,然后它被限制为零或一个值.) (7认同)