select_allhashref
mysql クエリで使用して取得したハッシュ (HoH) のハッシュがあります。フォーマットは私が望むものに最適で、同様の方法で他に 2 つの HoH があります。
最終的にこれらの HoH をマージしたいのですが、唯一の問題 (私が思う) は、1 つの HoH の「サブハッシュ」に別の HoH と同じ名前のキーがあることです。例えば
my $statement1 = "select id, name, age, height from school_db";
my $school_hashref = $dbh->selectall_hashref($statement1, 1);
my $statement2 = "select id, name, address, post_code from address_db";
my $address_hashref = $dbh->selectall_hashref($statement2, 1);
したがって、データをダンプすると、次のような結果が得られます。
$VAR1 = {
'57494' => {
'name' => 'John Smith',
'age' => '9',
'height' => '120'
}
}
};
$VAR1 = {
'57494' => {
'name' => 'Peter Smith',
'address' => '5 Cambridge Road',
'post_code' => 'CR5 0FS'
}
}
};
(これは例なので、異なる名前を持つことは非論理的に見えるかもしれませんが、私はそれが必要です:))
だから私は、またはそのような名前'name'
に変更したいと思います。'address_name'
これは可能ですか?私はあなたができることを知っています
$hashref->{$newkey} = delete $hashref->{$oldkey};
(編集: これはオンラインで見つけた例ですが、テストしていません。)
しかし、その部分をどのように表すかわかりません'id'
。何か案は?