|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 14 Feb 2002 17:04:46 To : vilfred Subject : Re: дерево каталогов на вложенных хешах... как? -------------------------------------------------------------------------------- Здравствуй, vilfred. v> Я вот чего хочу. Можно сделать хеши массивов, хеши хешей, массивы хешей. v> Хеши хешей массивов и прочее и прочее. Hасколько я понял твой пример то v> второму элементу массива ставится в соответствие хеш, т.е. второй v> элемент массива это ссылка на область памяти в которой записан хеш. v> Явно прописано типа вот второй элемент есть в массиве, этот второй v> элемент есть хеш, а у хеша есть элемент ключ и значение, значение может v> быть массивом(это называется хеш массивов). Hет. Значение _данного_ элемента хэша - массив. Вернее, ссылка на массив, то есть на тот же самый массив может ссылаться и еще что-нибудь. Hа остальные элементы хэша это никаких ограничений не накладывает. Что из примера, в общем, тоже видно. v> Допустим в директории лежат v> файлы, если следующий по порядку файл, то обычный массив, а если v> директория, то элемент массива будет ссылкой на хеш, в котором v> содержатся ключи и значения, значения так-же могут быть либо файлами, v> либо директориями(но директории это опять таки ссылки на подвложенные v> хеши). Т.е. так до одури вглубь и у попа была собака пока наконец не v> доберется пдо последноей самой глубокой директории. v> Вот такую штуку и не выходит сделать, eval просто матерится. eval чего и на что матерится? Что на входе, я вроде понял - путь к директории. А что на выходе должно быть? И чем File::Find не устраивает? v> А это v> походу аналог slocate только если убрать посторяющиеся элементы занимть v> такая штука будет не мег(на пропись путей), а кил сто, т.е. всмысле v> @a=grep{!$_{$_}++} @listdir. т.е. уберутся повторяющиеся названия из v> директорий. Такого типа. Пока это аналог find. Аналогом slocate это станет, если ты это засунешь в базу с достаточно быстрым доступом на чтение. Причем даже не на доступ по индексу, а на grep. Для чего та структура, которую ты пытаешься получить, непригодна. -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/63596362c797.html, оценка из 5, голосов 10
|