| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > DBM файлы |
| Автор: rcdimon 27.4.2005, 11:33 |
| Мне нужно создать сервер. Сейчас там уже установлен и настроен апач и перл. CGI сценарии работают. Но dbmopen не работет! Вообще. Не создает никаких файлов. И не выдает никаких ошибок... Как сделать так что б они все же работали???? |
| Автор: korob2001 27.4.2005, 12:00 |
| Не все операционки работают с DBM файлами. Узнай установлен у тебя на сервере модуль DB_File, затем пиши сюда. |
| Автор: rcdimon 27.4.2005, 12:46 | ||
| Не знаю. В каталоге перла есть файл DB.pm И есть DB_File.pm в каталоге i586-linux-thread-multi Это типа он и есть? Добавлено @ 12:48 Вот это код, который я использую для работы с BDM файлами
|
| Автор: Secandr 27.4.2005, 13:08 |
| rcdimon укажи полные пути и поставь права на запись в эти папки |
| Автор: rcdimon 27.4.2005, 13:41 |
| путь /usr/lib/perl5/5.8.1/ |
| Автор: Secandr 27.4.2005, 13:46 | ||
вот тут пути поставь полные и на эти же папки надо поставить права на запись. |
| Автор: korob2001 27.4.2005, 13:56 | ||
Попробой такой код:
Если в том же каталоге, где находится и сам скрипт появится файл "mydbm", значит всё работает. |
| Автор: rcdimon 27.4.2005, 14:19 |
| korob2001, не работает. |
| Автор: korob2001 27.4.2005, 14:34 | ||
А что пишет??? Если не знаешь, то допиши в начало кода строку:
|
| Автор: Гость_frenky 29.4.2005, 00:48 |
| И без DB_FIle работает $key="hehe" get_lock('gamelimit'); dbmopen(%baza ,"gamelimit",0666) || die; $baza{$key}="sssss"; dbmclose(%baza); relase_lock('gamelimit'); |
| Автор: Гость_asd 29.4.2005, 08:39 |
| А может весь глюк в правах доступа. Которые вы указываете при dbmopen и которые стоят на самом перле и на папке, где он создает файл |
| Автор: korob2001 29.4.2005, 09:19 | ||
Гость_frenky - да это мы знаем, просто DBM файл открытый с dbmopen у чела изначально не работал, DBM созданные с помощью DB_File имеют абсолютно другую стрктуру. |
| Автор: Гость_rcdimon 6.5.2005, 06:16 |
| Я немного попарился: Изменил права на директории где хранятся DBM'ки. Изменил права самого скрипта и т.д. Короче сами файлы создаются и имеют размер 12Кб. Но в них ничего не записывается и не считывается |
| Автор: korob2001 6.5.2005, 11:07 | ||||
| rcdimon - это нормальное явление, так что не стоит удивляться. Такова природа DBM файлов, они хранят не только информацию помещённую в них из вне, но и информацию о своей структуре, именно по этой причине работать с DBM'кой так же быстро, как и с обычным хешем. Вот так делаем запись:
А вот так считываем:
Если создавал файл с помощью, DB_File, то открывать его нужно таким же способом, потому как у них абсолютно разная структура. |