如何搜索某些键的哈希值?

时间:2011-10-20 01:03:24

标签: 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 
        $new = $_;        # here new should get the value 3,4
    }
}      

我遇到的问题是,除非我执行以下操作

for (sort keys %{$hash{'1'}{'2'}})

我无法对钥匙进行排序;总之,不能用变量替换2。

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用嵌套循环?你需要这样的东西:在深入访问你需要的值之前,先对$ 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
        }
    }
}