名前¶
File::CounterFile - 永続的なカウンタ・クラス
概要¶
use File::CounterFile;
$c = File::CounterFile->new("COUNTER", "aa00");
$id = $c->inc;
open(F, ">F$id");
説明¶
このモジュールは永続的なカウンタ・クラスを実装します。それぞれのカウンタは ファイルシステムでの別々のファイルによって表されます。ファイルのロックが 適用されます。そのため複数のプロセスが同じカウンタに同時にカウンタを破壊する 危険もなくアクセスしようとすることができます。
オブジェクトのコンストラクタ(new
)に最初のパラメータとしてファイル名を 与えることができます。存在しなければ、そのファイルは作成されます。
もしファイル名が"/"や"."ではじまらなければ、$File::CounterFile::DEFAULT_DIR
からの相対位置にあるファイルと解釈されます。この変数のデフォルト値は環境変数 TMPDIR
あるいは環境変数が定義されていなければ/usr/tmpにより初期化されます。 カウンタを作成する前に、この変数に別の値を代入したいかもしれません。
コンストラクタに2番目のパラメータを渡すと、それは新しいカウンタの初期値を 設定します。このパラメータはファイルが作成されるとき (つまり呼び出される前には存在しない)だけ、効力があります
inc()
メソッドを呼ぶと、カウンタの値を1つ増やします。dec()
を 呼ぶと、カウンタの値は減少します。どちらの場合も、新しい値が返されます。 dec()
は数値(数字のみ)のカウンタにのみ機能します。
カウンタの値を(増やすことなく)、value()
メソッドを使うことにより 見ることが出来ます。
カウンタはlock()
と unlock()
メソッドでロックし、アンロックする ことができます。常にカウンタを更新するという必要がないので、カウンタが ロックされていると値の増加と取り出しがより速くなります。カウンタが ロックされているかをlocked()
メソッドを使って問い合わせることができます。
File::CounterFileオブジェクトへの演算子のオーバーロードされたインターフェース もあります。つまり++
演算子をカウンタを増加させるために、--
演算子を 減少させるために使うことが出来ます。そしてカウンタを直接文字列に 入れることが出来ます。
著作権(COPYRIGHT)¶
Copyright (c) 1995-1998,2002 Gisle Aas. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
作者¶
Gisle Aas <[email protected]>