我正在创建哈希哈希并尝试搜索或进行模式匹配。
哈希是
$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。
答案 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
}
}
}