複雑な構造のハッシュがあり、検索と置換を実行したいと考えています。最初のハッシュは次のようになります。
$VAR1 = {
abc => { 123 => ["xx", "yy", "zy"], 456 => ["ab", "cd", "ef"] },
def => { 659 => ["wx", "yg", "kl"], 456 => ["as", "sd", "df"] },
mno => { 987 => ["lk", "dm", "sd"] },
}
そして、すべての '123'/'456' 要素を繰り返し検索したいのですが、一致が見つかった場合は、サブレイヤーの比較を行う必要があり['ab','cd','ef']
ます['as','sd','df']
。 ','cd','ef']. したがって、出力は次のようになります。
$VAR1 = {
abc => { 123 => ["xx", "yy", "zy"], 456 => ["ab", "cd", "ef"] },
def => { 659 => ["wx", "yg", "kl"] },
mno => { 987 => ["lk", "dm", "sd"] },
}
したがって、削除はインデックスではなく、サブ構造に基づいています。どうすればそれができますか?助けてくれてありがとう!!
保持する値を宣言するとします。つまり、事前に宣言された ["ab", "cd", " ef"] 他の場所で 456 の他のインスタンスを削除します。検索はすべてのキーに対して行う必要があります。そのため、コードはハッシュを調べ、最初に 123 => ["xx", "yy", "zy"] を取得し、残りのハッシュ全体でそれをキーと比較します。一致が見つからない場合は何もしません。456 => ["ab", "cd", "ef"] の場合のように一致が見つかった場合、2 つが比較されます。 ab", "cd", "ef"] は保持され、保持されます 456 => ["ab", "cd", "ef"