2011-10-20 21 views
0

ハッシュのハッシュを作成して、パターンマッチングを検索または実行しようとしています。特定のキーに対してハッシュのハッシュを検索するにはどうすればよいですか?

ハッシュが

$hash{$var1}{$var2}{$var3}=$value; #where $var1 =1_1 : $var2 =2_1; $var3 =3,4; 

であると私は

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 
    } 
}  

私はで立ち往生午前問題を値を変更することができ、ここで$ VAR4キーVAR3 とのパターンマッチングを行うことをしようとしています私がない限りということです以下は

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

私はキーをソートできません。つまり、2を変数に置き換えることはできません。

+3

わかりません。まず、あなたは何の質問もしませんでした。あなたはいくつかの出力を指定しました(ここでは新しい値は3,4となります)が、あなたのコードはあなたにその出力を与えます。 – ikegami

+0

'%hash'のダンプに関連する部分を表示できますか? – Toto

答えて

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 
     } 
    } 
} 
関連する問題