Tie::JournaledFile クラス

これは、一つのファイルに append していくタイプです。 この機能は Tie::JournaledFile クラスが提供します。

このクラスは、データを追加する場合にも使われていますし、過去のデータを 参照したい場合にも用いられますが、追加のオペレーションしか行なえません。 つまり LFS (Log Structured File System) のような振舞いです。

参照する際は最後に追加したデータが取り出されます。 つまり、値は追加された値を last match で取り出しています。 [1]

このクラスは、サイズを度外視して一定期間のあいだ記録しておきたいデータ に対して使います。たとえば、登録時の confirmation のキャッシュや message-id キャッシュです。これらは expire を時間で制御したいからです。 このクラスは引数でファイル名を与えることになっているので、ファイル名に 日付つきのファイルを選ぶと良いでしょう。

なお、普通の tie() とは違う

key => [
	ろぐ1	 (どっかのふぁいるのどっかの行),
	ろぐ2	 (どっかのふぁいるのどっかの行),
	ろぐ3	 (どっかのふぁいるのどっかの行),
]
型のデータ取り出しをしたい場合があります。 この形のデータ取り出しは get_all_values_as_hash_ref() メソッドを使えば可能です。

Warning

なお検索時の挙動の first match と last match は切替えることができます。 どちらの戦略で探すのか、クラスオブジェクトを生成する際に明示的に指定す ることが推奨されます。デフォルトは last match です(最後に書き込んだデー タが返される振舞いが自然です)。

Notes

[1]

原理上 last match 以上の情報抽出も可能です。 過去のログを追跡していくことで、全データ一覧の生成ができます。 また、 last match を first match に切替えることも出来ます。

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/software/fml4/.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

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>.