[ Perl ] INI 形式のコンフィグファイルの読み込み ( Config::Tiny )

Pocket

ここでは、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 ) を入れてみましたが、改行ではなくそのまま文字列として取得されました。これについてはちょっと残念でした。記述がおかしいだけなのかもしれませんが、他のモジュールならできるのでしょうか。

改行として読み込むことを必要とする機会もないとは思いましたので、深追いはしませんでした。

参考

 

スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>