检查散列中是否已存在随机生成的值

时间:2017-10-14 15:13:49

标签: perl

如果我有一个Perl哈希值,并且我随机生成了一个数值,我怎么能让我的代码检查哈希中是否已经存在随机生成的值?

1 个答案:

答案 0 :(得分:1)

使用exists built-in

检查密钥:

my %foo = ( bar => 1 );
if (exists $foo{foo}) {
   print "key foo exists";
}
if (exists $foo{bar}) {
   print "key bar exists";
}

此代码将打印

key bar exists

要检查值,首先需要reverse哈希值。记住哈希是列表,因此如果它们被反转,则所有键都成为值。如果某个值已存在多次,您可能会获得一些数据,但如果您只想知道某个值是否存在,则该值不相关。

my %foo = ( bar => 1, baz => 2, qrr => 1 );
my %reversed = reverse %foo;
if (exists $reversed{1}) {
   print "value 1 exists";
}
if (exists $reversed{3}) {
   print "value 3 exists";
}

这将打印

value 1 exists