広告
広告
この関数は、tie 関数にとって代わられました。dbm ファイルまたは ndbm ファイルを連想配列に結び付けます。ASSOC はその連想配列の名前、DBNAME はデータベースの名前となります。データベースが存在しなければ、MODE で指定されたモードで作られます。古い DBM 関数のみをサポートしているシステムでは、プログラム中で 1 度だけ dbmopen() を実行することができます。DBM も ndbm も持っていないシステムでは、dbmopen() を呼び出すと致命的エラーになります。DBM ファイルに対して書き込み権が無いときには、連想配列を読みだすことだけができ設定をすることはできません。書きこみができるかどうかを調べたい場合には、ファイルテスト演算子を使うかeval()の中でダミーのエントリを設定するとよいでしょう。大きな DBM ファイルを扱うときには、keys() や values()のような関数は巨大な配列を返します。大きな DBM ファイルでは、each() 関数を使って繰り返しを行なった方が良いかもしれません。
# history ファイルのオフセットを印字 dbmopen(%HIST,'/usr/lib/news/history',0666); while (($key,$val) = each %HIST) { print $key, ' = ', unpack('L',$val), "\n"; } dbmclose(%HIST);
広告