![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Paul56 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 19.9.2008 Где: Екатеринбург Репутация: нет Всего: нет |
коллеги, объесните начинающему.
Читая книгу Лари решил попрактиковаться над много уровневыми вложениями. предположим есть меня текстовый файл. в нём соответственной следующее 1|0|Shire 2|1|Frodo 3|1|Bagins 4|0|Allcreatures 5|4|Goblin 6|0|Oko 7|6|Saruman 8|7|Goblin1 9|7|Goblin1 10|7|Goblin1 11|7|Goblin1 12|11|Goblin2 13|8|Goblin2
что то я понять не могу что куда передовать чтобы обход выполнить? p.s прошу не пинать, а лучше помочь советом как правильно это делается, очень хочется разобраться в мелочах. |
|||
|
||||
| IceSunrise |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 7.4.2008 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
Paul56, а что значит "проверка"? Ты хочешь теперь посмотреть, у кого какие потомки? Т.е. например для первой записи:
ID=1; NAME=Shire; Childs: Frodo, Bagins. Или какой результат должна дать проверка и что ты хочешь проверить? |
|||
|
||||
| Paul56 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 19.9.2008 Где: Екатеринбург Репутация: нет Всего: нет |
да совершенно верно
|
|||
|
||||
| IceSunrise |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 7.4.2008 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
Ну тогда я бы сделал так:
Что-то вроде этого. Могут быть ошибки, не запускал, но идея должна быть понятна: каждый герой регистрируется в хеше по его id, в качестве значения этого хеша выступает указатель на другой хеш из двух элементов name - имя героя и childs - потомки героя. Кстати, компактнее потомков можно выводить так: print "ID=$hero_id; NAME=$heros{$hero_id}->{name}; CHILDS: ", map {$heros{$_}->{name}} @{$heros{$hero_id}->{childs}}, "\n"; Это сообщение отредактировал(а) IceSunrise - 4.11.2008, 16:13 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
(я бы попробовал хэш массивов...
или нет? ) Paul56, используйте СУБД... Это сообщение отредактировал(а) gcc - 4.11.2008, 16:24 |
|||
|
||||
| Paul56 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 19.9.2008 Где: Екатеринбург Репутация: нет Всего: нет |
Совершенно верно, этот пример я хотел реализовать к СУБД.
|
|||
|
||||
| tolkien |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
Paul56
В вашем примере от рекурсии только одно название. Вот настоящая рекурсия
Вывод
Это сообщение отредактировал(а) tolkien - 5.11.2008, 08:58 |
||||
|
|||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |