912____________Часть VIII. Примеры
Посмотрите скрипт DBBOOKADD.PL, с помощью которого записывается информация в базу данных dbm (см. компакт-диск).
Главными компонентами являются модуль Peri DB_FILE.PM и модуль для управления файлом FCNTL.PM (листинг 36.5). Первый модуль выполняет роль интерфейса с функциями dbm. Второй модуль обеспечивает вас функциями, контролирующими доступ к базе данных и запрещающими одновременную запись от двух источников.
#!/usr/bin/peri
use DB_File;
use Ferity-if ($ENV{ 'REQUE:ST_METHOD'}eq 'POST')-{
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs= split(/&/, $buffer);
foreach $pair (@pairs)(
($name, $value)=split(/=/, $pair);
$value=~tr/+/ /;
$value=~s/%([a-fA-FO-9][a-fA-FO-9])/pack("C", hex($l))/eg;
$form{$name}=$value;
}}$file="addresses";
Для связи с базой данных вам следует использовать функцию tie О. Она имеет следующий синтаксис:
tie(%hashname, DB File, filename, flags, mode)
На мест hashnameможет стоять любое имя, однако оно должно начинаться символом %. Так как вы используете модуль DB_FILE.PM, то должны указать имя файла. Парамет filenameидентифицирует имя файла, в котором хранится информация. Далее нужно указать значени flags,которые зависят от используемой функции dbm. В этом примере следует использовать флажки для считывания и записи (O_RDWR)или, если файл не существует,