|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : vilfred 2:5020/400 14 Feb 2002 16:44:05 To : Artem Chuprina Subject : Re: дерево каталогов на вложенных хешах... как? --------------------------------------------------------------------------------
Привет!
Я вот чего хочу. Можно сделать хеши массивов, хеши хешей, массивы хешей.
Хеши хешей массивов и прочее и прочее. Hасколько я понял твой пример то
второму элементу массива ставится в соответствие хеш, т.е. второй
элемент массива это ссылка на область памяти в которой записан хеш.
Явно прописано типа вот второй элемент есть в массиве, этот второй
элемент есть хеш, а у хеша есть элемент ключ и значение, значение может
быть массивом(это называется хеш массивов). Допустим в директории лежат
файлы, если следующий по порядку файл, то обычный массив, а если
директория, то элемент массива будет ссылкой на хеш, в котором
содержатся ключи и значения, значения так-же могут быть либо файлами,
либо директориями(но директории это опять таки ссылки на подвложенные
хеши). Т.е. так до одури вглубь и у попа была собака пока наконец не
доберется пдо последноей самой глубокой директории.
Вот такую штуку и не выходит сделать, eval просто матерится. А это
походу аналог slocate только если убрать посторяющиеся элементы занимть
такая штука будет не мег(на пропись путей), а кил сто, т.е. всмысле
@a=grep{!$_{$_}++} @listdir. т.е. уберутся повторяющиеся названия из
директорий. Такого типа.
AC> Если б ты хотя бы шарил, как понятно для
AC> читателей изложить вопрос...
AC> <начало телепания>
AC> $array[2]{'something'} = [{a=>0,b=>1},2,3];
AC> push @{$array[2]{'something'}}, 4, 5;
AC> perldoc perlref
AC> Что до числа вложенных хешей, то если имеется в
AC> виду размер массива, из них
AC> состоящего, то как обычно для массива, а если
AC> уровень вложенности, то как
AC> видно из вышеприведенного примера, такая штука
AC> вообще не определена.
AC> Что же до "без рекурсивностей", то есть теорема
AC> из теории вычислимости, что
AC> любой рекурсивный алгоритм можно записать
AC> итеративно, если язык понимает if и
AC> while (либо if и goto). Точной формулировки и
AC> порядка удлинения записи не
AC> помню.
Hе знаю, слышал только про механизм HКА в регекспах но это математика.
Дима
--
TEAM [Маньяки]
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
* Origin: Talk.ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/648833c3bc22.html, оценка из 5, голосов 10
|