[devel] Re: AnyDBM_File DB_File

Alexey Morozov =?iso-8859-1?q?morozov_=CE=C1_novosoft=2Eru?=
Пн Ноя 4 11:03:05 MSK 2002


On Mon, Nov 04, 2002 at 08:26:59AM +0300, Alexey Tourbin wrote:
> > Не, баба яга против. Хочется таки периодически иметь *dbm, который
> > _заведомо_ установлен, если установлен перл, насколько убитым не был бы
> > хостинг, и насколько тупого^H^H^H^H^H^H упрямы его админы. В этом смысле,
> > SDBM - вполне себе альтернатива. Хоть и довольно убогая.
> Здесь сколько людей, столько и мнений. Но есть несколько "основных"
> вопросов, которые позволяют взвесить все за и против:
> 
> 1) должна ли функциональность tie/db присутствовать в perl-base;
По-моему, если этого не требуют никакие другие части - нет.
 
> 2) какой должен быть формат по умолчанию в AnyDBM_File; софт чаще всего
> использует именно AnyDBM_File как "редиректор" (каковым он по сути и
> является; он просто проксирует методы первого найденного при загрузке
> модуля) в условиях неопределенности относительно того, какие *DB*_File
> модули могут быть установлены в хост-системе.
Именно для этого он и писался.
This module is a "pure virtual base class"--it has nothing of its own

> Исходя из этих вопросов, я вижу два решения:
> 
> 1) включить как AnyDBM_File, так и модуль для формата по умолчанию в
> perl-base;
> 
> 2) вынести как AnyDBM_File, так и модуль для формата по умолчанию в
> отдельный пакет.
"Модуль для формата" - какого формата?

> > А почему бы не вынести AnyDBM из perl-base в отдельный пакет, завязать
> > его на виртуальный DBM_Provider, а все *DB*_File сделать этими самыми
> > провайдерами?
> 
> Такое решение грозит потерей совместимости в пределах одной хост-системы
> (при установке очередного DB_Provides, который обладает бОльшим
> приоритетом).
Э-э-э, не. О "системных альтернативах" речь, собственно, и не идет. Если же Вы имеете
в виду приоритеты *DB*File, то в потрохах у AnyDBM все равно зашита некоторая таблица,
и те пакеты, которым и вправду все равно (они не определяют собственного приоритета в
отношении *DB* модулей), получают формат базы именно в соответствии с этой таблицей.
Те же, кто хочет чего-то явно - ну он так об этом и говорит.

Коль скоро это так, то установка NDBM может стать фатальной для тех, кто до этого
пользовался модулями "по умолчанию" (скажем DB_File), и никак не отразится на тех,
кто явным образом сказал, что он хочет DB_File и ничего кроме DB_File. Причем, произойдет
это вне зависимости от Вашего желания или нежелания, а также приложенных к устранению
данной ситуации усилий. There's always more than one way ... :-)



Подробная информация о списке рассылки Devel