perl 配列に連想配列を入れる |
連想配列をリストに入れて使用したいときがあります。
イメージはこんな感じ。
リスト(
連想配列,
連想配列,
連想配列
);
使いどころは、データベースからデータを取得。
行を配列にコピーし、列はリストを使用するというところでしょうか。
@list = ();
%hash = (
"aaa" => "aaa_data",
"bbb" => "bbb_data"
);
push(@list, %hash);
こんなロジックを書くと
push(@list, "aaa", "aaa_data", "bbb", "bbb_data");
こういう風に展開されてしまい、狙った動作になりません。
どうしたもんか調べてみると
配列と連想配列とリファレンス
http://d.hatena.ne.jp/Bayside/20080430/p1
ここを参考に
@list = ();
%hash = (
"aaa" => "aaa_data",
"bbb" => "bbb_data"
);
push(@list, \%hash);
foreach my $row (@list) {
print $row->{'aaa'},"\n";
print $row->{'bbb'},"\n";
}
こう書くことで、狙った動作になりあした。
perl、めんどくさいかも。
でも、面白い!