Perl 如何在哈希表中搜索某些键?
我正在创建散列并尝试搜索或进行模式匹配 哈希是Perl 如何在哈希表中搜索某些键?,perl,Perl,我正在创建散列并尝试搜索或进行模式匹配 哈希是 $hash{$var1}{$var2}{$var3}=$value; #where $var1 =1_1 : $var2 =2_1; $var3 =3,4; 我正在尝试用键var3进行模式匹配 这里$var4可以更改值 for (sort keys %{$hash{'1'}{$var4}}) { # var4=2_1 : can also be 2_2 and so on if ($_ =~ m/3,.*/) { # here
$hash{$var1}{$var2}{$var3}=$value; #where $var1 =1_1 : $var2 =2_1; $var3 =3,4;
我正在尝试用键var3进行模式匹配
这里$var4可以更改值
for (sort keys %{$hash{'1'}{$var4}}) { # var4=2_1 : can also be 2_2 and so on
if ($_ =~ m/3,.*/) { # here
$new = $_; # here new should get the value 3,4
}
}
我遇到的问题是,除非我做以下事情
for (sort keys %{$hash{'1'}{'2'}})
我不能把钥匙分类;简而言之,不能用变量替换2。您尝试过使用嵌套循环吗?您需要这样做:在深入访问所需的值之前,对$var4键进行排序
for my $var4 (sort keys %{$hash{'1'}}) { # var4=2_1 : can also be 2_2 and so on
# you can also filter the var4 keys here if you want
for my $var3 (keys %{$hash{1}{$_}}) {
if ($var3 =~ m/3,.*/) { # here
$new = $var3; # here new should get the value 3,4
}
}
}
我不明白。首先,你没有问任何问题。您指定了一些所需的输出(“此处new应获得值3,4”),但您的代码确实提供了该输出。能否向我们展示
%hash
转储的相关部分?