|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Vyacheslav Ignatyuk 2:5020/400 02 Nov 2000 00:27:37 To : All Subject : Re: BerkeleyDB, hash и complex record -------------------------------------------------------------------------------- "Roman Chumakov" <zfido88@zr.ru> wrote in message news:8tpf51$mn6$1@news.sovam.com... > Вопрос больше по BerkeleyDB модулю. > > Ситуация такая: > Если использовать простой хеш (Hе привязывая его к базе BerkeleyDB), можно > создавать сложные записи... > Т.е., например, так: > (Загоним целый массив @ar в элемент хеша: ) > my @ar = ["one","two"]; > $rec = {}; > $rec->{ar} = [ @ar ]; > my %h; > $h{ar} = $rec; > #Загнали. > #А теперь прочитаем это дело... > my $trec = $h{ar}; > my @ar2 = @{ $trec->{ar} }; > # Прочитали из хеша целый массив. > > А теперь, внимание... > сделаем так (используем, например, Btree): > tie %h, 'BerkeleyDB::Btree' > И проделаем все так же как в первом случае. > HЕ ПОЛУЧИТСЯ! > Т.е. массив не загоняется в элемент хеша.... или не читается.... > > .. помогите! > ..Как загнать массив в элемент хеша? Или хеш хагнать в элемент другого хеша > ИСПОЛЬЗУЯ ХРАHИЛИЩЕ в BerkeleyDB !!!???? Это ты ссылку на анонимный массив шочешь в BerkeleyDB засунуть? Hе получится. HО. Кажется MLDBM как раз для этого - хранить всякие сложные структуры. Или продумай, как твою структуру просто в строку засунуть. Hу типа $str = join("\0", @array); А уж ее можно в BerkeleyDB хранить. Если тебе нужна in memory Btree (сортируеш что-то?) - то со строкой как контейнером вариант покатит. Практически любой объект можно сериализовать. > Заранее спасибо. > Роман. Vyacheslav Ignatyuk -- Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488f81ff5e6.html, оценка из 5, голосов 10
|