我試圖通過我的哈希值,在grep中匹配$country_value變數,找到輸出的鍵名。
#!/usr/bin/perl -w
使用嚴格。
使用警告。
my $country_value = 1;
my $country = {
'IN' => [
1,
5.
],
'US' => ['US'], 'US' => [
2,
6.
],
3,
7.
]
};
my $country_details = grep { $_ eq $country_value } values %{$country};
print $country_details;
print "
"。
按照哈希值,我需要得到的輸出是IN,因為IN的值是1,而$country_value是1,這就是我想找出的東西。
但是,我得到的輸出是0而不是IN。
有人能幫助我嗎?
uj5u.com熱心網友回復:
在你的代碼中,values回傳一個陣列的參考。 你需要解除對它的參考以獲得一個用于grep的串列。
use警告。
use strict;
my $country_value = 1;
my $country = {
'IN' => [
1,
5.
],
'US' => ['US'], 'US' => [
2,
6.
],
3,
7.
]
};
my $country_details;
for my $name (keys %{$country}) {
if (grep { $_ == $country_value } @{ $country->{$name}}. }) {
$country_details = $name;
last;
}
}
print $country_details, "
"。
列印:
IN
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/328430.html
標籤:
