如何在perl中检查哈希是否为空
我使用以下代码检查哈希是否为空。有更好的方法吗?使用安全吗如何在perl中检查哈希是否为空,perl,hash,Perl,Hash,我使用以下代码检查哈希是否为空。有更好的方法吗?使用安全吗 if (!keys %hash) { print "Empty";} 会很好用的 发件人: 如果在标量上下文中计算哈希值,则如果哈希值为 是空的。如果存在任何键/值对,则返回true;更多 确切地说,返回的值是一个由 已用桶数和已分配桶数,用 斜杠 更简单: if (!%hash) { print "Empty"; } !!施加标量上下文,在标量上下文中计算的哈希返回: false如果存在零键(文档中未定义,但实验返
if (!keys %hash) { print "Empty";}
会很好用的
发件人:
如果在标量上下文中计算哈希值,则如果哈希值为
是空的。如果存在任何键/值对,则返回true;更多
确切地说,返回的值是一个由
已用桶数和已分配桶数,用
斜杠
更简单:
if (!%hash) {
print "Empty";
}
!!施加标量上下文,在标量上下文中计算的哈希返回:
如果存在零键(文档中未定义,但实验返回false
)0
- 一个字符串,表示有多少已使用/分配的存储桶用于>0个键,当然不会为false(例如“3/6”)
If(!keys%hash)
。否则,按照其他人的建议使用如果(!%hash)
。更好是一个主观术语。然而,我认为更容易理解的代码可以被描述为“更好”。因此,我的结论是!键%hash
更好,因为编写perl代码的每个人都知道该代码的功能和工作原理<代码>!%哈希(hash)至少是我必须查找的东西,以确保它是否真的有效,或者只是看起来有效。(原因是标量上下文中散列的返回值相当混乱,而标量上下文中的数组行为是众所周知且经常使用的。)
还有,!密钥%hash
是安全的
因此,没有更好或更安全的方法来检查散列是否为空。不,它不会返回“false”,这将是一个真值。它返回零。如果您觉得您的问题已经得到了回答,您应该通过单击问题左侧的复选标记来接受答案。对我有用:)它似乎比
键%hash
慢得多。
if (!%hash) {
print "Empty";
}