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