5部 関数リファレンス

tie

tie VARIABLE, PACKAGENAME, LIST



tieは、変数とクラスを関連付ける関数です。VARIABLEには、関連付けをする変数、PACKAGENAMEには、オブジェクトを実装するクラス名を指定します。他に引数があれば、そのパッケージのnewメソッドに渡されます。

大きなDBMファイルでは、keysvaluesのような関数は、大きな配列値を返す可能性があります。大きな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

tieはモジュールをuseしたりrequireしたりしません。自分で明示的に行う必要があります。

関連記事