これを例で説明しようと思います。ハッシュのハッシュの一般的な例を見てみましょう。
my %HoH = (
flintstones => {
lead => "fred",
pal => "barney",
},
jetsons => {
lead => "george",
wife => "jane",
"his boy" => "elroy",
},
simpsons => {
lead => "homer",
wife => "marge",
kid => "bart",
},
);
私の目的のために、名前のない、または匿名のハッシュを%HOHに追加できるようにしたいと思います。実行時まで、これらのサブハッシュを定義する必要はありません(または定義できません)。Perlでこれをどのように達成できますか?
私が読んだもの(そしてPerldocsとGoogleですでに読んだもの)はすべて、すべてのサブハッシュ(たとえば、「フリントストーン」、「ジェットソン」、「シンプソンズ」)が定義されている例を示しているようです。
私がやっていることは、CSVファイルからの行を含むサブハッシュを含む親ハッシュを構築しようとしています。
%TopHash = (
%Line1 => {
cell01 => $some_value1a;
cell02 => $some_value2a;
cell03 => $some_value3a;
},
%Line2 => {
cell01 => $some_value1b;
cell02 => $some_value2b;
cell03 => $some_value3b;
},
%Line3 => {
cell01 => $some_value1c;
cell02 => $some_value2c;
cell03 => $some_value3c;
},
# etc
# etc
# etc
);
必要な「%LineX」ハッシュの数は、実行時までわかりません(実行時に読み取られるCSVの行数を表すため)。
何か案は?まだはっきりしていない場合は...私はまだPerlハッシュに頭を包み込もうとしています。