如何在Perl哈希中找到一个值?[重复]

问题描述 投票:0回答:3

在Perl中,有什么方法可以检查哈希中的值是否存在,而不考虑键?我在网上读了一些资料,知道如何检查键,但不知道如何检查值。

例如,我想知道 "apple "这个字符串是否存在于哈希中的任何键的值中。这是对单层哈希的检查,而不是嵌套。

perl hash
3个回答
3
投票

只是一个快速的破解方法;-)

# string to search for
$value = "hugo"
%myHash = .....

@hashValues = values %myHash;

my %hash = map { $_ => 1 } @hashValues;
if(exists($hash{$value})) { ........ }

2
投票

你的意思是 values ?

你可以通过迭代哈希值来找到哈希中的一个特定值。

for(values %your_hash){
    ...
    if ($_ eq your_value){
        do something
    }
}

0
投票

另一个选择是使用 grepvalues

$value = "hugo"
%myHash = .....
if (grep {$_ eq $value} values %myHash) {
    print "$value found\n";
} else {
    print "$value not found\n";
}
© www.soinside.com 2019 - 2024. All rights reserved.