在Perl中,if(%hash)和if(定义的%hash)之间有什么区别?

时间:2010-07-06 11:56:21

标签: perl hash

if (%hash)if (defined %hash)之间有什么区别?

my %hash ;

if ( %hash) { 

  print "defined "; 
}

if (defined %hash)  { 
  print "defined ";
}

1 个答案:

答案 0 :(得分:22)

来自perldoc -f defined

  

在聚合(哈希和数组)上使用“defined”      弃用。它曾用于报告内存是否存在      已经分配了聚合。此行为可能会消失      在未来的Perl版本中。你应该使用一个简单的      测试尺寸:

  if (@an_array) { print "has array elements\n" }
  if (%a_hash)   { print "has hash members\n"   }