« 多重配列の作り方 - 動的なハッシュの配列 | メイン | 多重配列の作り方 »
2005年 6月 16日(木) 友引 今日は何の日?
多重配列の作り方 - 動的なハッシュのハッシュ
Perlで動的なハッシュのハッシュを作る方法です。
先ずはテストデータです。このデータを読み込んでハッシュの配列を作成します。
aa ab ac ad ae
ba bb bc bd be
ca cb cd ce cf
この例では、データの一文字目をuc()で大文字化した物を1次元目のキーとして利用しています。push(%a, \%w);の部分が、ハッシュのハッシュを作っている部分ですね。パターンが分かって来ますね。
#!/usr/bin/perl
use strict;
my(%a, $i, $j, $k);
# ハッシュのハッシュを動的に作る
%a = ();
open(IN, 'in.data') || die "open error";
while(<IN>) {
chop;
my(%w);
$k = (split(m//))[0];
foreach (split(m/ /)) {
$w{uc($_)} = $_;
}
$a{uc($k)} = \%w;
}
close(IN);# 動的に作ったハッシュのハッシュを取り出してみる
foreach $i (sort keys %a) {
foreach $j (sort keys %{$a{$i}}) {
print '$a{'. $i. '}{'. $j. '}='. $a{$i}{$j}. ' ';
}
print "\n";
}
print "\n";
__END__;
ここまで来るともう似たり寄ったりだ。と言う事が理解できると思います。
Posted by kibiwaka : 2005年06月16日 19:39
トラックバック
- トラックバックを頂く記事の内容については、記事に関係する内容、記事への同調、記事への反論など、 記事の内容に関するもののみとします。
- トラックバック先の記事に、当サイト、または該当記事へのリンクが無い場合には、トラックバックを削除させていただく場合があります。
- Movable Typeの迷惑トラックバック感知機能により、トラックバックが受け付けられない場合があります。
- 法律に触れる可能性があると判断できるもの、当サイトへの掲載が不適当と思われる内容については、 事前の連絡をなしに削除する場合があります。
- 当サイト、黍若個人への連絡事項などがあれば、連絡用記事へトラックバックを付けてください。 個別の記事に付けないで下さい。
または、ウェブメールでご連絡下さい。 - 詳しくし、黍若日記 コメント・トラックバック・リンク基本方針をご覧下さい。
このエントリーのトラックバックURL:
このエントリーのリンク用URL:
コメント
- コメントを頂く記事の内容については、記事に関係する内容、記事への同調、記事への反論など、 記事の内容に関するもののみとします。
- Movable Typeの迷惑コメント感知機能により、コメントが受け付けられない場合があります。
- 法律に触れる可能性があると判断できるもの、当サイトへの掲載が不適当と思われる内容については、 事前の連絡をなしに削除する場合があります。
- 当サイト、黍若個人への連絡事項などがあれば、連絡用記事へコメントを付けてください。 個別の記事に付けないで下さい。
または、ウェブメールでご連絡下さい。 - 詳しくし、黍若日記 コメント・トラックバック・リンク基本方針をご覧下さい。

