Forum Webscript.Ru
Программирование => Perl => Тема начата: Gekt0r от 25 Декабря 2007, 18:31:11
-
Народ, подскажите, копаюсь с чужим кодом... Непонятен блок, как и что делает... Буду признателен, если поможете разобрать....
@sections - массив секций, @subs - подсекций.
$keeper - переменная для выборки из базы по заданным параметрам.
show_in_map() - Определяет, стоит ли флаг для отображения секции или подсекции
@sections = grep { exists $_->{subs} } map {
my @subs = $keeper->get_sections(
s => $_->id(),
status => 1,
class => \'ThemeSection\'
);
@subs = grep { $_->show_in_map() } @subs;
if (@subs) {
$_->{subs} = \\@subs;
$sum += scalar @subs;
}
$_;
} @sections;
Понятно, что по выдранному из кода куску сложно что-то определить... Но тем не менее.. хотя бы последовательность выполнения блока, и какой кусок что делает, подскажите. А то я вконец запутался в этих map и grep и блоках. Понял только, что берется массив @sections, и что-то с ним делается...
-
он у вас и работать не будет, скобки не совпадают.
-
Gekt0r
просто возьми и перепиши...
-
arto:
он у вас и работать не будет, скобки не совпадают.
код работает.. Со скобками нормально все.. Просто он выполняется немного некорректно, я ищу ошибку, найти не могу
commander:
просто возьми и перепиши...
просто переписать не удастся... Эотт код -лишь часть большого модуля, целиком его переписывать - дело неблагодарное. И я хочу все-таки разобраться во всех этих блоках и операторах.
Народ,можете помочь?
-
где закрывающая скобка у "$keeper->get_sections" ?
-
Gekt0r
Интересно, а где ты этот фреймворк взял?
А вообще, этот код добавляет в объекты секций массивы объектов дочерних секций по параметру show_in_map()...
Причем довольно криво...
-
arto:
где закрывающая скобка у "$keeper->get_sections" ?
а, невнимательно скопировал. Она 4 строчками ниже, я туда фигурную скобку поставил по ошибке. Но в самом коде все правильно.
Phoinix:
Gekt0r
Интересно, а где ты этот фреймворк взял?
А вообще, этот код добавляет в объекты секций массивы объектов дочерних секций по параметру show_in_map()...
Причем довольно криво...
это из движка сайта, с которым мне приходится разбираться...
В принципе, что я понял, он берет массив секций, выбирает для каждого список подсекций, фильтрует их по параметру show_in_map, а потом еще выбирает из секций только те, у которых есть подсекции..
А почему криво?