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
转储的相关部分?