fml8 でのメンバーリストの読み書き、例えばアドレスの登録/削除は IO::Adapter という抽象クラスを通じて行ないます。ようは Unix で vfs/vnode インターフェイスを導入した時のような感じですね。 使い方は次のようになります。
use IO::Adapter;
$io = new IO::Adapter $map, $map_params;
$io->open || croak("cannot open $map");
while ($x = $io->get_next_key()) { ... }
$io->close;$map は「map:識別子」となります。 現在のところ $map は次のようなものが使えます。 file: は省略可能です。
file:/var/spool/ml/elena/recipients unix.group:root nis.group:root mysql:id postgresql:id ldap:id
file: は通常のファイルです。 unix.group:root は /etc/group の root のエントリにあるユーザのリストを、 nis.group:root は NIS の root のエントリにあるユーザのリストです。 mysql:id は MySQL、postgresql:id は PostgreSQL へのアクセスです。 ldap:id は LDAP への通信を可能とします。
RDBMS などは別の名前空間で定義することにしています。 たとえば MySQL は config.cf の mysql:id で指定されたパラメータを用います。 このパラメータは new IO::Adapter を実行する際に、 指定する必要があります(後述)。
author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.
For questions about FML, e-mail <fml-bugs@fml.org>.