confファイルを読み込むモジュールConfig::Simple
同期がやっていることに口を出してしまったため,手も出そうと思って簡単なプログラムを作成した.
引数なんかでパラメータを変更するのもいいけれど,外部APIを利用するときのIDをいちいち引数で渡したら面倒くさいよなァァと思ったので,行儀よくconfファイルを作成することに.
そういや,confファイルを読み込むモジュールってないのかな?と思っていたら,やっぱりあった.
こりゃ便利.けれど,Config::Simpleがインストールされてないといけないからなぁ.というわけでちょっとしたライブラリを書いてみることにした.
# # tinyconfig.pl # # Description: config simple loading library # Usage: # require "tinyconfig.pl"; # my $value_of_ref = loadfile("sample.conf"); # # where, sample.conf is... # hoge : foo # piyo : 4649 # # then, %value_of includes # hoge => 'foo' # piyo => 4649 # use strict; use warnings; sub loadfile{ my $filename = shift; my %value_of; open(IN, "< $filename") or die "Cannot open $filename\n"; foreach my $line (<IN>){ # ignore comments next if ($line =~ /^#/); $line =~ s/#.*$//; if($line =~ /(\S+)\s*?:\s*?(\S+)/){ $value_of{$1} = $2; } } if($line =~ /(\S+)\s*?:\s*?(\S+)/){ $value_of{$1} = $2; } } close(IN); return \%value_of; } 1;
人様に見せるようなものではないですね.いつになっても綺麗な正規表現が書けるようにならない.今のところ,
hoge : piyo # hogeの値をbarに変更するといいことあるかも
というような行末コメントをはじくことができない.できるようにしました.
合計20分程度.