タグ

2011年1月25日のブックマーク (1件)

  • Perl: 多次元連想配列 - ループの仕方

    Perl で多次元のハッシュ(連想配列)を使うときのメモ。 多次元のハッシュは my %foo; $foo{$id1}{$id2} = $val; で作れることはすぐに分かりましたが、全てのキーを列挙するやり方が分からなくて、大晦日の夜ずっと試行錯誤しながら悩んでいました。 while (my ($key1,$val1)=each(%foo)){ } で1次元目のキーと、対応するハッシュのリファレンスを得ることが分かったのですが、ハッシュのリファレンスからどうやって2次元目のキーを生成すればいいのかが分かりませんでした。keys $$val1 とやってもエラーになります。リファレンスは、それ自身が参照先の型を知っているから $$val1 でハッシュにならないの? 年が明けて、Effective Perl を持っていたのを思い出して、リファレンスの項をみてようやく理解できました。まず、リファ