Spec-Zone.ru › Perl 5.32

ODBM_File

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНТАКСИС
  • ОПИСАНИЕ
  • ДИАГНОСТИКА
    • odbm store returned -1, errno 22, ключ "..." в ...
  • БЕЗОПАСНОСТЬ И ПЕРЕНОСИМОСТЬ
  • ОШИБКИ И ПРЕДУПРЕЖДЕНИЯ

ИМЯ

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 устанавливает связь между переменной Perl hash и файлом в формате ODBM_File;. Вы можете манипулировать данными в файле так, как будто они находятся в переменной Perl hash, но при завершении программы данные останутся в файле, чтобы их можно было использовать при следующем запуске программы.

Используйте ODBM_File с встроенной функцией Perl tie для установления связи между переменной и файлом. Аргументы для tie должны быть:

  1. Переменная hash, которую вы хотите связать.

  2. Строка "ODBM_File". (Это сообщает Perl использовать пакет ODBM_File для выполнения функций hash.)

  3. Имя файла, который вы хотите связать с hash.

  4. Флаги. Используйте один из:

    O_RDONLY

    Только чтение данных из файла.

    O_WRONLY

    Только запись данных в файл.

    O_RDWR

    Чтение и запись.

    Если вы хотите создать файл, если он не существует, добавьте O_CREAT к любому из этих значений, как в примере. Если вы опустите O_CREAT и файл ещё не существует, вызов tie завершится ошибкой.

  5. Права по умолчанию для использования при создании нового файла. Фактические права будут изменены маской пользователя, поэтому здесь лучше использовать 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–2020 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.32.0/ODBM_File

Spec-Zone.ru

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