« 多重配列の作り方 - 動的な配列の配列 | メイン | 多重配列の作り方 - 動的なハッシュの配列 »

2005年 6月 16日(木)   友引  今日は何の日?

多重配列の作り方 - 動的な配列のハッシュ

Category : Perl 仕事 

Perlで動的な配列のハッシュを作る方法です。

先ずはテストデータです。このデータを読み込んで配列のハッシュを作成します。

aa ab ac ad ae
ba bb bc bd be
ca cb cd ce cf

@wをsplitの直前でmyしているのには意味があります。push()を実行都度、空のハッシュを作って置く必要があるためです。 配列の配列ではmy(@w);となって居ましたが、配列のハッシュではmy(%w);となります。動的にデータを作る時には、 ここがポイントとなると思います。push(@a, \%w);の部分が、配列のハッシュを作っている部分ですね。

#!/usr/bin/perl

use strict;

my(@a, $i, $j);

# 配列のハッシュを動的に作る
@a = ();
open(IN, 'in.data') || die "open error";
while(<IN>) {
  chop;
  my(%w);
  foreach (split(m/ /)) {
    $w{uc($_)} = $_;
  }
  push(@a, \%w);
}
close(IN);

# 動的に作った配列のハッシュを取り出してみる
for ($i = 0; $i <= scalar(@a)-1; $i++) {
  foreach $j (sort keys %{$a[$i]}) {
    print '$a['. $i. ']{'. $j. '}='. $a[$i]{$j}. '  ';
  }
  print "\n";
}
print "\n";


__END__;

 

データの取り出しは、静的であっても動的であっても全く変わらない。と言う点に注目してください。 この様に全く変わらない形式でデータを作る。と言う事もポイントの1つになります。


Posted by kibiwaka : 2005年06月16日 19:37

トラックバック

  • トラックバックを頂く記事の内容については、記事に関係する内容、記事への同調、記事への反論など、 記事の内容に関するもののみとします。
  • トラックバック先の記事に、当サイト、または該当記事へのリンクが無い場合には、トラックバックを削除させていただく場合があります。
  • Movable Typeの迷惑トラックバック感知機能により、トラックバックが受け付けられない場合があります。
  • 法律に触れる可能性があると判断できるもの、当サイトへの掲載が不適当と思われる内容については、 事前の連絡をなしに削除する場合があります。
  • 当サイト、黍若個人への連絡事項などがあれば、連絡用記事へトラックバックを付けてください。 個別の記事に付けないで下さい。
    または、ウェブメールでご連絡下さい。
  • 詳しくし、黍若日記 コメント・トラックバック・リンク基本方針をご覧下さい。

このエントリーのトラックバックURL:


このエントリーのリンク用URL:


コメント

  • コメントを頂く記事の内容については、記事に関係する内容、記事への同調、記事への反論など、 記事の内容に関するもののみとします。
  • Movable Typeの迷惑コメント感知機能により、コメントが受け付けられない場合があります。
  • 法律に触れる可能性があると判断できるもの、当サイトへの掲載が不適当と思われる内容については、 事前の連絡をなしに削除する場合があります。
  • 当サイト、黍若個人への連絡事項などがあれば、連絡用記事へコメントを付けてください。 個別の記事に付けないで下さい。
    または、ウェブメールでご連絡下さい。
  • 詳しくし、黍若日記 コメント・トラックバック・リンク基本方針をご覧下さい。

コメントしてください




保存しますか?



 

Copyright ©2004-2007 黍若