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 устанавливает соединение между переменной Perl hash и файлом в формате ODBM_File;. Вы можете манипулировать данными в файле так, как будто они находятся в переменной Perl hash, но после завершения программы данные останутся в файле, чтобы использоваться при следующем запуске программы.
Используйте ODBM_File с встроенной функцией Perl tie для установления соединения между переменной и файлом. Аргументы для tie должны быть:
-
Переменная hash, которую вы хотите связать.
-
Строка
"ODBM_File". (Это говорит Perl использовать пакетODBM_Fileдля выполнения функций hash.) -
Имя файла, который вы хотите связать с hash.
-
Флаги. Используйте один из:
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. Самое важное — длина ключа плюс длина его связанного значения не должна превышать 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/ODBM_File