perl初始化數組,@max=()和@max=undef,以及@max="";三者都是不一樣的。

定義數組
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=‘’;這樣數組前面會有一個空格鍵。

發佈了191 篇原創文章 · 獲贊 174 · 訪問量 85萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章