2011年 07月 26日

環境変数で設定を変える的なモジュール Config::ENV

なんかもっと簡単なのがあればいいなー と思ったのでつくりました。

package MyConfig;

use Config::ENV 'FOO_ENV';

common +{
	name => 'foobar',
};

config development => +{
	dsn_user => 'dbi:mysql:dbname=user;host=localhost',
};

config test => +{
	dsn_user => 'dbi:mysql:dbname=user;host=localhost',
};

config production => +{
	dsn_user => 'dbi:mysql:dbname=user;host=127.0.0.254',
};

config production_bot => +{
	parent('production'),
	bot => 1,
};

#

use MyConfig;

MyConfig->param('dsn_user');

みたいに書くと、$ENV{FOO_ENV} の値によって別の値をつかうようにするってだけです。

設定ファイルを別にわけたいみたいなのは適当に do したらいいだけだし、切替える機能だけほしいのです。