Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вложенные хэши, стиль 
:(
    Опции темы
achmed
Дата 15.4.2004, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 12.4.2004

Репутация: нет
Всего: нет



Здравствуйте!
Допустим в мою функцию передается хэш произвольной вложенности (например это элементы меню,которые нужно отобразить на веб-странице), мне нужно пройтись по всем элементам, при этом нужно различать на текущем шаге обхода что соответсвует ключу - скаляр или очередной хеш. Вопрос как лучше поступить c точки зрения стиля, определять наличие хэша при помощи ref, или передавать информацию о структуре самом хэше (например с ключами -value,-childs).

т.е в первом случае

fun printmenu
{
my $menu = shift;
foreach $i (keys %$menu)
{
if(ref($i) eq HASH)
{
........
}
else
{
.......
}
}
}
..
printmenu({"гостевая страница"=> "/quest/","новости" => {"лента"=>"/news/line/","подписка"=>"/news/sub/"}});

или

fun printmenu
{
my $menu = shift;
foreach $i (@$menu)
{
if(defined $i->{-childs})
{
........
}
else
{
.......
}
}
}
.....
printmenu([{-name=>"гостевая страница",-val=> "/quest/"},
{-name=>"новости",-childs => [{-name=>"лента",-val=>"/news/line/}",{-name=>"подписка",-val=>"/news/sub/"}]}]);




PM MAIL   Вверх
HalkaR
Дата 18.4.2004, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



ИМХО, в данном случае рекурсивный алгоритм с проверкой на хеш оптимален.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0720 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.