tie VARIABLE, PACKAGENAME, LIST
tieは、変数とクラスを関連付ける関数です。VARIABLE
には、関連付けをする変数、PACKAGENAME
には、オブジェクトを実装するクラス名を指定します。他に引数があれば、そのパッケージのnew
メソッドに渡されます。
大きなDBM
ファイルでは、keys
やvalues
のような関数は、大きな配列値を返す可能性があります。大きなDBM
ファイルでは、each
関数を使って繰り返しを行なった方が、よいかもしれません。
tieの使い方
# print out history file offsets tie(%HIST, NDBM_File, '/usr/lib/news/history', 1, 0); while (($key,$val) = each %HIST) { print $key, ' = ', unpack('L',$val), "\n"; } untie(%HIST);
ハッシュを実装するパッケージでは、次のようなメソッドを用意します。
- TIEHASH objectname, LIST
- DESTROY this
- FETCH this, key
- STORE this, key, value
- DELETE this, key
- EXISTS this, key
- FIRSTKEY this
- NEXTKEY this, lastkey
通常の配列を実装するパッケージでは、次のようなメソッドを用意します。
- TIEARRAY objectname, LIST
- DESTROY this
- FETCH this, key
- STORE this, key, value
- [others TBD]
スカラ変数を実装するパッケージでは、次のようなメソッドを用意します。
- TIESCALAR objectname, LIST
- DESTROY this
- FETCH this,
- STORE this, value