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

在Perl中,if(%hash)和if(定义的%hash)之间有什么区别?,perl,hash,Perl,Hash,if(%hash)和if(定义为%hash)之间有什么区别 发件人: 在聚合(散列和数组)上使用“已定义””是不允许的 不赞成。它用于报告是否存在该内存 累计已分配。这种行为可能会消失 在Perl的未来版本中。您应该使用简单的 尺寸测试: if (@an_array) { print "has array elements\n" } if (%a_hash) { print "has hash members\n" } 在5.8.3之前,标量上下文中的绑定哈希存在问题。它们通常

if(%hash)
if(定义为%hash)
之间有什么区别

发件人:

在聚合(散列和数组)上使用“
已定义”
”是不允许的 不赞成。它用于报告是否存在该内存 累计已分配。这种行为可能会消失 在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(键%hash)
  if (@an_array) { print "has array elements\n" }
  if (%a_hash)   { print "has hash members\n"   }