これは、一つのファイルに append していくタイプです。 この機能は Tie::JournaledFile クラスが提供します。
このクラスは、データを追加もするし参照もしたい場合に用いられますが、 追加のオペレーションしか行なえません。 つまり LFS (Log Structured File System) のような振舞いです。
参照する際は最後に追加したデータが取り出されます。 つまり、値は追加された値を last match で取り出しています。
逆に、必要な場合には、過去のログを追跡していくことができます。
このクラスは、サイズを度外視して一定期間のあいだ記録しておきたいデータ に対して使います。例えば、登録時の confirmation のキャッシュや message-id キャッシュです。これらは expire を時間で制御したいからです。 このクラスは引数でファイル名を与えることになっているので、ファイル名に 日付付のファイルを選ぶと良いでしょう。
なお、普通の tie() とは違う
key => [ ろぐ1 (どっかのふぁいるのどっかの行), ろぐ2 (どっかのふぁいるのどっかの行), ろぐ3 (どっかのふぁいるのどっかの行), ]型のデータとりだしをしたい場合があります。 この形のデータ取り出しは get_all_values_as_hash_ref() メソッドを使えば可能です。
Warning |
なお検索時の挙動の first match と last match は切替えることができます。 どちらの戦略で探すのか、 クラスオブジェクトを生成する際に明示的に指定することが推奨されます。 デフォルトは first match です。 |
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>.