これは、一つのファイルに append していくタイプです。 この機能は Tie::JournaledFile クラスが提供します。
このクラスは、 データを追加する場合にも使われていますし、 過去のデータを参照したい場合にも用いられますが、 追加のオペレーションしか行なえません。 つまりジャーナル型ファイルシステム (Journalized-FS, 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 です (最後に書き込んだデータが返される振舞いが自然です)。 |
[1] | 原理上 last match 以上の情報抽出も可能です。 過去のログを追跡していくことで、全データ一覧の生成ができます。 また、 last match を first match に切替えることも出来ます。 |
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >