Spec-Zone.ru › Perl 5.28

NDBM_File

СОДЕРЖАНИЕ

  • НАЗВАНИЕ
  • СИНТАКСИС
  • ОПИСАНИЕ
  • ДИАГНОСТИКА
    • ndbm store вернул -1, errno 22, ключ "..." в ...
  • ОШИБКИ И ПРЕДУПРЕЖДЕНИЯ

НАЗВАНИЕ

NDBM_File — Связанный доступ к файлам ndbm

СИНТАКСИС

use Fcntl;   # For O_RDWR, O_CREAT, etc.
use NDBM_File;

tie(%h, 'NDBM_File', 'filename', O_RDWR|O_CREAT, 0666)
  or die "Couldn't tie NDBM file 'filename': $!; aborting";

# Now read and change the hash
$h{newkey} = newvalue;
print $h{oldkey};
...

untie %h;

ОПИСАНИЕ

NDBM_File устанавливает соединение между переменной Perl hash и файлом в формате NDBM_File; Вы можете манипулировать данными в файле так, как будто они находятся в переменной Perl hash, но при завершении программы данные останутся в файле для использования при следующем запуске программы.

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

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

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

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

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

    O_RDONLY

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

    O_WRONLY

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

    O_RDWR

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

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

  5. Права по умолчанию для использования, если создается новый файл. Фактические права будут изменены маской пользователя, поэтому вы, вероятно, должны использовать 0666. (См. "umask" в perlfunc.)

ДИАГНОСТИКА

В случае неудачи вызов tie возвращает неопределенное значение и, вероятно, устанавливает $! для указания причины невозможности привязки файла.

ndbm store returned -1, errno 22, key "..." at ...

Это предупреждение выводится, когда вы пытаетесь сохранить ключ или значение, которое слишком длинное. Это означает, что изменение не было записано в базу данных. Смотрите ОШИБКИ И ПРЕДУПРЕЖДЕНИЯ ниже.

ОШИБКИ И ПРЕДУПРЕЖДЕНИЯ

Существует ряд ограничений на размер данных, которые можно хранить в файле NDBM. Наиболее важным является то, что длина ключа плюс длина связанного с ним значения не должна превышать 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.28.3/NDBM_File

Spec-Zone.ru

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