定義數組
my @max=();
和
my @max=undef;
竟然不是一回事。
在push @max,"ssss"
命令之後,
第一種寫法的$max[0]="ssss"
第二種寫法的$max[0]
是undef,$max[1]="ssss"
百度中,也有 人遇到類似的問題:
寫了個包含數組的幾句代碼,發現始終最終返回的數組大小始終不對。後來才發現犯了個錯誤。
開始時使用如下語句初始化perl數組:
my @arr=undef;
這樣寫是不對的,實際上是初始化了一個僅包含undef元素的數組。即$arr[0]=undef
.
此時用scalar(@arr)
得到的數組長度爲1.
正確的方法爲:
my @arr=();
細節決定成敗啊。。。
而且初始化的時候不要用my @arr=‘’;
這樣數組前面會有一個空格鍵。