ODBM_File
СОДЕРЖАНИЕ
ИМЯ
ODBM_File — Привязка к файлам ODBM
СИНТАКСИС
use Fcntl; # For O_RDWR, O_CREAT, etc.
use ODBM_File;
# Now read and change the hash
$h{newkey} = newvalue;
print $h{oldkey};
...
untie %h; ОПИСАНИЕ
ODBM_File устанавливает связь между перловской переменной типа хэш и файлом в формате ODBM_File;. Вы можете управлять данными в файле так, как будто они хранятся в перловском хэше, но при завершении программы данные сохранятся в файле, чтобы их можно было использовать при следующем запуске.
Используйте ODBM_File с встроенной в Perl функцией tie для установления связи между переменной и файлом. Аргументы для tie должны быть:
-
Переменная хэш, которую вы хотите привязать.
-
Строка
"ODBM_File". (Это сообщает Perl использовать пакетODBM_Fileдля выполнения функций хэша.) -
Имя файла, который вы хотите привязать к хэшу.
-
Флаги. Используйте один из:
O_RDONLY-
Только чтение данных из файла.
O_WRONLY-
Только запись данных в файл.
O_RDWR-
Чтение и запись.
Если вы хотите создать файл, если его не существует, добавьте
O_CREATк любому из этих флагов, как в примере. Если вы опуститеO_CREATи файл ещё не существует, вызовtieзавершится ошибкой. -
Права доступа по умолчанию, которые будут использоваться, если создается новый файл. Фактические права будут изменены маской umask пользователя, поэтому для этого параметра следует использовать 0666. (См. "umask" в perlfunc.)
ДИАГНОСТИКА
При ошибке вызов tie возвращает неопределенное значение и, вероятно, устанавливает $! для хранения причины, по которой файл не удалось привязать.
odbm store returned -1, errno 22, key "..." at ...
Это предупреждение отображается, когда вы пытаетесь сохранить ключ или значение, длина которого слишком велика. Это означает, что изменения не были записаны в базу данных. См. раздел ОШИБКИ И ПРЕДУПРЕЖДЕНИЯ ниже.
БЕЗОПАСНОСТЬ И ПЕРЕНОСИМОСТЬ
Не принимайте файлы ODBM из ненадежных источников.
В современных системах Linux это обычно файлы GDBM, которые не являются переносимыми между платформами.
Документация GDBM не подразумевает, что файлы из ненадежных источников могут безопасно использоваться с libgdbm.
Системы, которые не используют совместимость GDBM для старой поддержки dbm, будут использовать платформенно-специфическую библиотеку, возможно, унаследованную от систем BSD, где использование ненадежного файла может быть или не быть безопасным.
Злонамеренно созданный файл может привести к зависанию Perl или даже к раскрытию уязвимости безопасности.
ОШИБКИ И ПРЕДУПРЕЖДЕНИЯ
Существует ряд ограничений на размер данных, которые можно хранить в файле ODBM. Самое важное из них — длина ключа плюс длина связанного с ним значения не должна превышать 1008 байтов.
См. "tie" в perlfunc, perldbmfilter, Fcntl
© 1993–2021 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.36.0/ODBM_File