- PR -

多重定義した連想配列の全表示方法について

1
投稿者投稿内容
kei
ベテラン
会議室デビュー日: 2005/03/18
投稿数: 53
投稿日時: 2007-10-19 15:59
keiと申します。

Perlの基本かもしれませんが、ググっても分からなかったので
投稿させてもらいました。

以下のようなperlの連想配列のデータを全て出力するにはどうしたらよいでしょうか?

my %hash;
$hash{'a'}{'b'}{'c'} = "1";
$hash{'d'}{'e'}{'f'} = "2";
$hash{'x'}{'y'}{'z'} = "3";




よろしくお願いします。
すなめり
常連さん
会議室デビュー日: 2003/01/29
投稿数: 37
お住まい・勤務地: 横浜
投稿日時: 2007-10-22 21:10
コード:
while ( ( $key1, $value1 ) = each( %hash ) ) {
  %hash1 = %$value1;
  while ( ( $key2, $value2 ) = each( %hash1 ) ) {
    %hash2 = %$value2;
    while ( ( $key3, $value3 ) = each( %hash2 ) ) {
      print "$key1 : $key2 : $key3 : $value3\\n";
    }
  }
}



これで出力できるようですね。
キー項目でのソートが必要であれば、foreachとkeysとsort使ってください。

%hash1 = %$value1;
キモはここ。
kei
ベテラン
会議室デビュー日: 2005/03/18
投稿数: 53
投稿日時: 2007-10-23 10:59
すなめり様

コードありがとうございました。
ばっちり、ハッシュに格納したデータを全て表示させることが出来ました。

このコード、大切に保存しておきたいと思います。

1

スキルアップ/キャリアアップ(JOB@IT)