2014-10-27 55 views
3

我目前正在將一些在1996/8編寫的Perl代碼翻譯成Python。 我只是想知道。目前的Perl似乎有數組從0開始的索引(即第一個元素是:老版本的Perl有不同的數組索引規則嗎?

Array1[0] 

例如最後一個元素是

Array1[$#Array1-1] 

(我想...在更好地理解Perl的不是寫)
只是想知道如果在早期版本的他們第一次一樣

Array1[1] 

和去年一樣

Array1[$#Array1] 

只是想知道這是否可能在開發過程中發生了某些變化?
這可能是我自己的愚蠢,在這種情況下,我只需要更好地瞭解我的程序,但如果有人能指出我是哪一個,我將不勝感激。

由於

+0

如果您展示了一段讓您認爲數組可以是單索引的腳本,我們可能可以解釋它。 (當然,最好爲此發佈一個新問題。) – ThisSuitIsBlackNot 2014-10-27 14:42:48

+0

如果您偶然發現了負面指數,它們會從最後讀取。所以'$ array [$#array] == $ array [-1]'。 '$#array'表示最後一個索引,如果你想要大小,你需要'scalar @ array'。 – 2014-10-27 17:58:42

回答

11

不,第一個元素總是$Array1[0]和最後一個是$Array1[$#Array1]$Array1[-1]$Array1[@Array1 -1]

異常爲第一元件被改變的$[

該變量存儲的默認值,只有當數組中第一個元素的索引以及子串中第一個字符的索引。缺省值爲0,但理論上可以將其設置爲1,以便在下標和評估index()和substr()函數時使Perl更像awk(或Fortran)。

..助記符:[開頭下標。 已棄用在Perl v5.12.0中。

+7

'$ [''在5.12版本中才被正式棄用,但在此之前它一直強烈地不鼓勵,並且經歷了幾次更改以將它們限制在兩者之間。 (首先,它從全局變爲詞彙雜注,然後將其限制爲零或一個值。) – ikegami 2014-10-27 14:08:53

+1

@MrJanx您可以通過在答案的左側部分檢查它來爲您工作,您可以接受答案。 – 2015-02-07 19:04:27