Tripletail::Ini - 設定ファイルを読み書きする

# NAME

Tripletail::Ini - 設定ファイルを読み書きする

# SYNOPSIS

      my $ini = $TL->newIni('foo.ini');

      print $ini->get(Group1 => 'Key1');

      $ini->set(Group2 => 'Key1' => 'value');
      $ini->write('bar.ini');

# DESCRIPTION

以下のような設定ファイルを読み書きする。

      [HOST]
      Debughost = 192.168.10.0/24
      Testuser = 192.168.11.5 192.168.11.50
      [TL@server:Debughost]
      logdir = /home/tl/logs
      errormail = tl@example.org
      [TL:register@server:Debughost]
      logdir = /home/tl/logs/register
      [TL:register]
      logdir = /home/tl/logs/register
      [TL]
      logdir = /home/tl/logs
      errormail = tl@example.org
      [Debug@remote:Testuser]
      enable_debug=1
      [Group]
      Key=Value
      [DB]
      Type=MySQL
      host=1.2.3.4
      [Cookie]
      expire=30day
      domain=.ymir.jp
      [Smtp]
      host=localhost

TLのuse及び特化指定も参照する事
グループ名には "[" "]" 制御文字(0x00-0x20,0x7f,0x80-0x9f,0xff) 以外の半角英数字が使用可能。
全て大文字のグループ名は予約語の為、任意のグループ名としては使用は出来ない。
グループ名の"@" ":"は特化指定用の文字となる為、任意のグループ名には使用は出来ない。
空行は無視する
# で始まる行はコメントになる（writeを使用し書き出した場合、コメント行は反映されない）
連続行は対応しない
同じグループ名を複数記述した場合、一つのグループとして扱われる
同一項目は最初に書かれた物が有効になる（特化指定を使っている場合も同様であるため、通常は特化指定は非特化指定グループより先に書く必要性がある）
特化指定は グループ名:名称@server:Servermask@remote:Remotemask の順番で記述する必要性がある
初期に`use`で指定されるiniファイル以外のiniファイルにも`use`で指定した特化指定が有効となる
HOSTグループには、特化指定は使用できない

## METHODS

`$TL->newIni`

        $TL->newIni
        $TL->newIni($file_path)

  Tripletail::Ini オブジェクトを作成。 設定ファイルを指定してあればreadメソッドで読み込む。

`read`

        $ini->read($file_path)

  指定した設定ファイルを読み込む。

`getFilePath`

        $fpath = $ini->getFilePath;

  ファイルから設定を読み込んでいた場合、そのファイルパスを返す。 そうでなければ `undef` を返す。

`write`

        $ini->write($file_path)

  指定した設定ファイルに書き込む。 自動的に読み込まれる$INIに関しては書き込みは出来ない。 コメント行に関しては書き込まれないので注意が必要である。

`existsGroup`

        $bool = $ini->existsGroup($group, $raw)

  グループの存在を確認する。存在すれば1、しなければundefを返す。 $rawに1を指定した場合、特化指定を含んだグループ文字列で存在を確認する。

`existsKey`

        $bool = $ini->existsKey($group => $key, $raw)

  指定グループのキーの存在を確認する。存在すれば1、しなければundefを返す。 $rawに1を指定した場合、特化指定を含んだグループ文字列で存在を確認する。

`getGroups`

        @groups = $ini->getGroups($raw)

  グループ一覧を配列で返す。 $rawに1を指定した場合、特化指定を含んだグループ文字列で一覧を返す。

`getKeys`

        @keys = $ini->getKeys($group, $raw)

  グループのキー一覧を配列で返す。グループがなければ空配列を返す。 $rawに1を指定した場合、特化指定を含んだグループ文字列で確認し一覧を返す。

`get`

        $val = $ini->get($group => $key, $default, $raw)

  指定されたグループ・キーの値を返す。グループorキーがなければ$defaultで指定された値を返す。 $defaultが指定されなかった場合は die で例外を送出する。 $rawに1を指定した場合、特化指定を含んだグループ文字列で確認し値を返す。

  $default は undef であっても構わない。

  このメソッドはかつて $default が無く且つ値も存在しなければ undef を返していた。 その時の動作に基いて書かれた既存のコードとの互換性を得るためのオプションが存在する。 詳しくは "Ini パラメータ" を参照。

`get_reloc`

        $val = $ini->get_reloc($group => $key, $default, $raw)

  指定されたグループ・キーの値を返す。 基本的な動作及び引数は "get" と同様だが、値が `.../` で始まるとき(若しくは`...`そのものの時)に、 `...` 部分を ini ファイルのディレクトリ名で置き換える。 ("read" 以外で生成された Ini インスタンスの時は、この情報を持たないため処理されない。)

  0.46 以降で利用可能。

`set`

        $ini->set($group => $key => $value, $raw)

  指定されたグループ・キーの値を設定する。グループがなければ作成される。 $rawに1を指定した場合、特化指定を含んだグループ文字列で作成する。 指定しない場合、現在利用可能な最も上位のグループに設定される。

`const`

        $ini->const

  このメソッドを呼び出すと、以後データの変更は不可能となる。

`delete`

        $ini->delete($group => $key, $raw)

  指定されたグループ・キーの値を削除する。 $rawに1を指定した場合、特化指定を含んだグループ文字列で確認し削除する。

`deleteGroup`

        $ini->deleteGroup($group, $raw)

  指定されたグループを削除する。 $rawに1を指定した場合、特化指定を含んだグループ文字列で確認し削除する。

## Ini パラメータ

Tripletail::Ini クラス自体の動作を設定するためのパラメータ。

`use Tripletail qw(foo.ini);` に与えられたシステム設定用 ini ファイルに書かれたものが参照される。

グループ名は "Ini" とする。例:

      [Ini]
      treat_absent_values_as_undef = true

`treat_absent_values_as_undef`

        tread_absent_values_as_undef = true

  非推奨オプション。true を指定した場合、 get メソッドにデフォルト値が与えられていないのに要求したキーに対する値が存在した場合に die することなく undef を返す。

# SEE ALSO

Tripletail

# AUTHOR INFORMATION

Copyright 2006 YMIRLINK Inc.

This framework is free software; you can redistribute it and/or modify it under the same terms as Perl itself

このフレームワークはフリーソフトウェアです。あなたは Perl と同じライセンスの 元で再配布及び変更を行うことが出来ます。

Address bug reports and comments to: tl@tripletail.jp

HP : http://tripletail.jp/

Tripletail::Ini - 設定ファイルを読み書きする

# INDEX

- # で始まる行はコメントになる（writeを使用し書き出した場合、コメント行は反映されない）
- $TL->newIni
- AUTHOR INFORMATION
- DESCRIPTION
- HOSTグループには、特化指定は使用できない
- Ini パラメータ
- METHODS
- NAME
- SEE ALSO
- SYNOPSIS
- TLのuse及び特化指定も参照する事
- const
- delete
- deleteGroup
- existsGroup
- existsKey
- get
- getFilePath
- getGroups
- getKeys
- get_reloc
- read
- set
- treat_absent_values_as_undef
- write
- グループ名には "[" "]" 制御文字(0x00-0x20,0x7f,0x80-0x9f,0xff) 以外の半角英数字が使用可能。
- グループ名の"@" ":"は特化指定用の文字となる為、任意のグループ名には使用は出来ない。
- 全て大文字のグループ名は予約語の為、任意のグループ名としては使用は出来ない。
- 初期にuseで指定されるiniファイル以外のiniファイルにもuseで指定した特化指定が有効となる
- 同じグループ名を複数記述した場合、一つのグループとして扱われる
- 同一項目は最初に書かれた物が有効になる（特化指定を使っている場合も同様であるため、通常は特化指定は非特化指定グループより先に書く必要性がある）
- 特化指定は グループ名:名称@server:Servermask@remote:Remotemask の順番で記述する必要性がある
- 空行は無視する
- 連続行は対応しない

Tripletail::Ini - 設定ファイルを読み書きする