3
if (%hash)
和if (defined %hash)
有何區別?在Perl中,if(%hash)和if(定義的%hash)之間有什麼區別?
my %hash ;
if (%hash) {
print "defined ";
}
if (defined %hash) {
print "defined ";
}
if (%hash)
和if (defined %hash)
有何區別?在Perl中,if(%hash)和if(定義的%hash)之間有什麼區別?
my %hash ;
if (%hash) {
print "defined ";
}
if (defined %hash) {
print "defined ";
}
上聚集體(散列和陣列)使用 「
defined
」 是 棄用。它用於報告是否曾經分配了該集合的內存。在未來的Perl版本中,此行爲可能會消失 。你應該使用一個簡單的 測試尺寸:if (@an_array) { print "has array elements\n" } if (%a_hash) { print "has hash members\n" }
5.8.3之前有與標量上下文綁哈希值的問題。他們通常會返回0.如果您在編寫5.8.3之前版本的代碼,請使用'if(keys%hash)'http://perldoc.perl.org/perl583delta.html#Core-Enhancements – Schwern 2010-07-07 03:25:54