my $query = new CGI; my $template = HTML::Template->new(filename => 'template.tmpl', associate => $query); #### sub selectify { my $values = shift; my $labels = shift; my $selected = shift; my %selected = map {$_ => 1} @{$selected}; return [map { { value => $_, label => shift @{$labels}, selected => $selected{$_} || "", } } @{$values}]; } #### $template->param(some_loop => selectify(\@values,\@labels,[$query->param('some_param')]); #### ####