ここでは、Perl で INI 形式のコンフィグファイルを読み込むサンプルコードを掲載しています。動作環境は WIndows 7 上で DWIM Perl Version 5.14.2.1 を使用しました。
スポンサーリンク
INI形式のコンフィグファイル例
今回使用する INI ファイルになります。
[database] Server = becky Port = 9999 [mail] SmtpServer = mail.gesunokiwamiotome.jp SmtpPort = 587 [becky] gesugesu = 私以外私じゃないの\n当たり前だけどね\nだから
今回、INI ファイルを読み込むにあたり調べると Config::Simple を使用してるページが沢山出て来ました。しかし確認してみると DWIM Perl Version 5.14.2.1 では標準で使用できませんでした。外したのか、外されたのか、元々標準では使えないのかは解らりあませんが標準で使用できなことには変わりありません。標準で使えるのはコンフィグ系では以下のものでした。
- Config::Any
- Config::General
- Config::INI
- Config::MVP
- Config::Tiny
読み込むだけであれば一番簡単に利用できそうでしたので、今回は Config::Tiny を使用することにします。
Config::Tinyで INI ファイルの読み込み
use Config::Tiny; # ファイルパスを指定して読み込み my $cfg = Config::Tiny->read( '../config/config.ini' ); # セクションとパラメータ名を指定して読み込む my $server = $cfg->{'database'}->{'Server'}; my $port = $cfg->{'database'}->{'Port'}; my $becky = $cfg->{'becky'}->{'gesugesu'};
サンプルコードのように、INI ファイルの値に改行 ( \n ) を入れてみましたが、改行ではなくそのまま文字列として取得されました。これについてはちょっと残念でした。記述がおかしいだけなのかもしれませんが、他のモジュールならできるのでしょうか。
改行として読み込むことを必要とする機会もないとは思いましたので、深追いはしませんでした。
参考