2013年06月14日の日記、Perl - 二次元ハッシュ、ではなく;
今日は、Perlで二次元ハッシュ。
下記のデータでイメージしやすいかと。

[File]
perl_root=~/usr/bin/perl
tmp=/tmp
file1=file1.txt
file2=file2.txt
file3=file3.txt
[Internet]
web=http://www.xxx.co.jp/
ftp=ftp://www.xxx.co.jp/


ハッシュのイメージはこんな感じになります。

ハッシュ{'File'}{'perl_doc'} とすると ~/usr/bin/perl を取得
ハッシュ{'File'}{'tmp'} とすると /tmp を取得
ハッシュ{'Internet'}{'web'} とすると http://www.xxx.co.jp/ を取得

で、いやーハマったハマった笑
ハマったところは、具体的には言えません!
恥ずかしすぎて!
ハッシュでハマったわけでも、リファレンスでハマったわけでも、正規表現でハマったわけでもなく!
基本的なアルゴリズムを間違っちゃった(・∀・)

my %conf = ();
my $category = '';

while (<DATA>) {

my $data = $_;
chomp $data;

if ($data =~ /^\[(.*)\]$/) {
$category = $1;
} elsif ($data =~ /^(.*)=(.*)$/) {
$conf{$category}{$1} = $2;
}

}

for my $category (keys %conf) {
for my $key (keys %{$conf{$category}}) {
print "Category:{$category} Key:{$key} = $conf{$category}{$key}\n";
}
}

__DATA__
[File]
perl_root=~/usr/bin/perl
tmp=/tmp
file1=file1.txt
file2=file2.txt
file3=file3.txt
[Internet]
web=http://www.xxx.co.jp/
ftp=ftp://www.xxx.co.jp/


がんばろっ
[PR]
by redchant | 2013-06-15 00:12 | 日記
<< 2013年06月15日の日記、... 2013年06月10日の日記、... >>