Spec-Zone.ru › Perl 5.38

AnyDBM_File

СОДЕРЖАНИЕ

  • НАЗВАНИЕ
  • СИНТАКСИС
  • ОПИСАНИЕ
    • Сравнения DBM
  • СМОТРИТЕ ТАКЖЕ

НАЗВАНИЕ

AnyDBM_File - предоставляемый фреймворк для множественных DBM

NDBM_File, DB_File, GDBM_File, SDBM_File, ODBM_File - различные реализации DBM

СИНТАКСИС

use AnyDBM_File;

ОПИСАНИЕ

Этот модуль является "чистым виртуальным базовым классом" - у него нет ничего своего. Он просто предназначен для наследования от одного из различных пакетов DBM. Он предпочитает ndbm по соображениям совместимости с Perl 4, затем Berkeley DB (См. DB_File), GDBM, SDBM (который всегда есть - он поставляется с Perl), и, наконец, ODBM. Таким образом, старые программы, которые использовали NDBM через dbmopen(), могут по-прежнему это делать, но новые могут переупорядочить @ISA:

BEGIN { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File) }
use AnyDBM_File;

Использование нескольких реализаций DBM делает копирование форматов баз данных тривиальным:

use Fcntl; 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
			 ----	 ----    ----    ----    ------
 Linkage comes w/ perl   yes     yes     yes     yes     yes
 Src comes w/ perl       no      no      yes     no      no
 Comes w/ many unix os   yes     yes[0]  no      no      no
 Builds ok on !unix      ?       ?       yes     yes     ?
 Code Size               ?       ?       small   big     big
 Database Size           ?       ?       small   big?    ok[1]
 Speed                   ?       ?       slow    ok      fast
 FTPable                 no      no      yes     yes     yes
 Easy to build          N/A     N/A      yes     yes     ok[2]
 Size limits             1k      4k      1k[3]   none    none
 Byte-order independent  no      no      no      no      yes
 Licensing restrictions  ?       ?       no      yes     no
[0]

на машинах с различными средами, может быть в библиотеке совместимости bsd, от которой часто отказываются.

[1]

Может быть урезан, если вы компилируете для одного метода доступа.

[2]

См. DB_File. Требует символических ссылок.

[3]

По умолчанию, но может быть переопределён.

СМОТРИТЕ ТАКЖЕ

dbm(3), ndbm(3), DB_File(3), perldbmfilter

© 1993–2023 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.38.0/AnyDBM_File

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API