【发布时间】:2021-11-15 00:20:50
【问题描述】:
我正在尝试通过我拥有的哈希匹配grep 中的$country_value 变量来查找键名作为输出。
#!/usr/bin/perl -w
use strict;
use warnings;
my $country_value = 1;
my $country = {
'IN' => [
1,
5
],
'US' => [
2,
6
],
'UK' => [
3,
7
]
};
my $country_details = grep { $_ eq $country_value } values %{$country};
print $country_details;
print "\n";
根据哈希值,我需要得到输出为IN,因为IN 的值是1,而$country_value 是1,这是我想要找出的。
但是,我得到的输出是0 而不是IN。
有人可以帮忙吗?
【问题讨论】:
-
你可以像这样使用
List::Util::any:grep { any { $_ eq $country_value } @{$country->{$_} } } keys %$country -
你不需要
-w和use warnings(因为它们基本上做同样的事情)。大多数人只使用use warnings。