在Perl中,有什么方法可以检查哈希中的值是否存在,而不考虑键?我在网上读了一些资料,知道如何检查键,但不知道如何检查值。
例如,我想知道 "apple "这个字符串是否存在于哈希中的任何键的值中。这是对单层哈希的检查,而不是嵌套。
只是一个快速的破解方法;-)
# string to search for
$value = "hugo"
%myHash = .....
@hashValues = values %myHash;
my %hash = map { $_ => 1 } @hashValues;
if(exists($hash{$value})) { ........ }
你的意思是 values
?
你可以通过迭代哈希值来找到哈希中的一个特定值。
for(values %your_hash){
...
if ($_ eq your_value){
do something
}
}
另一个选择是使用 grep
与 values
$value = "hugo"
%myHash = .....
if (grep {$_ eq $value} values %myHash) {
print "$value found\n";
} else {
print "$value not found\n";
}