ANYDBMFILE(3) USER COMMANDS ANYDBMFILE(3)
NAME
AnyDBM_File - 複数の DBM ファイルを扱う枠組みを与える
NDBM_File、ODBM_File、SDBM_File、GDBM_File - さまざまな DBM
インプリメンテーション
SYNOPSIS
use AnyDBM_File;
DESCRIPTION
このモジュールは、「純粋仮想基底クラス」です。 このモジュー
ル自身には何も持っていません。 さまざまな DBM パッケージか
ら継承を行なうだけです。 Perl 4 との整合から ndbm がもっと
も好まれ、続いてバークレイ DB (DB_File manpage を参照)、GDBM、
SDBM (Perl に同梱されているので、いつも利用可能です)、最後に
ODBM と続きます。 このように、dbmopen() を介して NDBM を使
っていた、従来のプログラムは、そのままにすることもできますが、
新規のプログラムでは、@ISA を再整理することができます (訳注:
これは、誤りかな):
@AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File);
これによって、データベースフォーマットのコピーが簡単に行なえ
ます:
use POSIX; use NDBM_File; use DB_File;
tie %newhash, DB_File, $new_filename, O_CREAT|O_RDWR;
tie %oldhash, NDBM_File, $old_filename, 1, 0;
%newhash = %oldhash;
各 DBM の比較
いくつかのパッケージの機能などの比較概略を表に示します:
odbm ndbm sdbm gdbm bsd-db
---- ---- ---- ---- ------
perl にリンケージが付属 ○ ○ ○ ○ ○
perl にソースが付属 × × ○ × ×
多くの UNIX OS に付属 ○ ○[0] × × ×
UNIX 以外で構築可か ? ? ○ ○ ?
コードの大きさ ? ? 小 大 大
データベースの大きさ ? ? 小 大? 中[1]
スピード ? ? 遅い 中 速い
FTP 可能か × × ○ ○ ○
簡単に構築可能か 不可 不可 ○ ○ △[2]
サイズ制限 1k 4k 1k[3] なし なし
バイト順序に独立 × × × × ○
ライセンスの制約 ? ? なし あり なし
Perl module manpages Last change: Release 5.0 Patchlevel 00 1
ANYDBMFILE(3) USER COMMANDS ANYDBMFILE(3)
[0] 多くの雑多なマシンで可。 おそらく、(敬遠されがちな) bsd
compat ライブラリにあります。
[1] アクセスメソッドをコンパイルすれば、調整可能。
[2] DB_File manpage を参照。 シンボリックリンクが必要。
[3] デフォルト。 再定義可。
SEE ALSO
dbm(3)、ndbm(3)、DB_File(3)
Perl module manpages Last change: Release 5.0 Patchlevel 00 2