2013-01-31 118 views
0

我正在編寫腳本,必須通過或未通過測試用例。所以我在一個變量中有一些值,這個變量是未定義的。錯誤:無法使用未定義的值作爲ARRAY參考

我檢查是這樣的:

我有一個$val,其中有哈希值的數組。現在我檢查,如果該數組爲空:

if(@$val<=0){do something} 

因此,如果這$val =undef,那麼這將引發一個錯誤:

Can't use an undefined value as an ARRAY reference

我應該如何檢查,如果我$val是空的?

回答

2

使用

use strict; 
use warnings; 

在文件的頂部,他們可能會告訴你是什麼問題。

+0

用途是蟒蛇的存在,他的代碼是php ... –

+0

我正在使用它..我得到這個錯誤..事情是當我的翻斗車$ val它是undef ...所以它無法引用它.. – user2013387

+5

@ Mr-sk .. this是perl代碼。 – user2013387

1

有兩個部分可以回答您可能會問的問題。

首先,無條件創建數組引用。如果您可能在$val中通過undef,請將其提升爲代碼中的空數組引用,例如$val // []

然後,檢查@$val是否非零。非零性表示數組中有元素。傳統上,這被表述爲一個道理測試:

unless (@{ $val // [] }) { 
    ... # stuff to do if the array is empty 
} 
0

如果$val是是undef,它是不爲空數組的引用;你的代碼有其他錯誤。你能展示如何設置$val

2

如果要檢查標量是否爲undef,請使用defined運算符。

if (not defined $val) { 
    # do something 
}