in reply to HTML::Template: Howto make a inner/outer loop?

The code should look something like this:
my @outer; while (my $rows1 = $query1->fetchrow_hashref()) { my $query2 = &db_query("SELECT title FROM pages WHERE sectionid = $ +sectionid"); $inner=[]; # you need a NEW array for each loop, not just an empty + array while (my $rows2 = $query2->fetchrow_hashref()) { push(@$inner,{TITLE=>$rows2->{title}); } push(@outer,{ TITLE=>$rows1->{title}, PAGES=>$inner; }); } $template->param(sections=>\@outer);
The most common mistake with this problem (it bites everybody at least once) is assigning an empty array instead of an empty array reference in the inner loop. If you make that mistake, the values for all the inner loops end up the same.