Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Обьединить все ветки хеша и создать дерево |
Автор: AlexanderI 13.2.2015, 13:52 | ||
Здравствуйте. Помогите правильно обьединить и создать хэш из другого хеша. Есть такая структура (сделана через dump::dumper): Каждый лист этого дерева расписан от корня.
Нужно совместить все уровни, чтобы не было повторений, верхних уровней. Чтобы получилось одно единственное дерево. Например имеется 2 одинаковых дерева "Магазин", всё что одинаковое обьединяется в массив. Должно получиться что-то подобное: [{ 'name' => "Магазин", 'sub' => [{ 'name' => 'Универсам', 'sub' =>[{ ..... }] }, { 'name' => 'Радуга', 'sub' =>[{ ....... }] }, ] }] |
Автор: arto 13.2.2015, 14:23 |
сделайте сначала hash по name |
Автор: AlexanderI 13.2.2015, 14:49 |
arto, никак не могу придумать как. |
Автор: arto 16.2.2015, 09:51 |
my $name = delete $_->{'name'}; $_->{'name'} = delete $_->{'val'}; push @{ $hh->{ $name } }, $_; |