Translate

2013年8月16日金曜日

Config::Simple

■簡単な設定ファイルを操作するモジュール

まずは設定ファイルを作成する
ファイル名:config
database = 'fizz'
user     = 'bazz'
pass     = 'fizzbazz'

ファイル名:Sample.pl
use strict;
use warnings;
use utf8;
use feature 'say';
use Config::Simple;
binmode STDOUT, ":utf8";

my $config = Config::Simple->new('./config');
say $config->param('database');
say $config->param('user');
say $config->param('pass'); 

実行結果:
fizz
bazz
fizzbazz

new する時に、ファイルパスを指定し、その後paramメソッドで値を取得することができるようです


ちょっとした物を記録しておき使うのであればこんな感じでよさそうですね。
ただ、同一のキー名を使用したい場合はセクションで区切ることで使い分けができます。
ファイル名:config
[001]
database = 'db001'
user     = 'user001'
pass     = 'pass001'

[002]
database = 'db002'
user     = 'user002'
pass     = 'pass002'

use strict;
use warnings;
use utf8;
use feature 'say';
use Config::Simple;
binmode STDOUT, ":utf8";

my $config = Config::Simple->new('./config');

say $config->param("001.database");
say $config->param("002.database");

実行結果:
db001
db002

今度は、paramメソッドで[セクション名].[キー名]を指定することで値にアクセスできます。

ちなみに、ハッシュ化することも可能で
オブジェクト->vars(); とすればできます。
use strict;
use warnings;
use utf8;  
use feature 'say';
use Config::Simple;
binmode STDOUT, ":utf8";
use Dumpvalue; my $d = Dumpvalue->new();

my $config = Config::Simple->new('./config01');
my $hash   = $config->vars();
$d->dumpValue($hash);

say $hash->{'001.user'};                                                           
say $hash->{'002.user'};

実行結果:
'001.database' => 'db001'
'001.pass' => 'pass001'
'001.user' => 'user001'
'002.database' => 'db002'
'002.pass' => 'pass002'
'002.user' => 'user002'
user001
user002


param関数とかじゃなくて、一発でハッシュに放り込んでくれると便利そうですね。
ということで他のConfig系のモジュールも探してみよう。

0 件のコメント:

コメントを投稿