use strict; use CGI qw(:standard); use CGI::Pretty; my @question = ('a'..'d'); my $answer = [ [('number',5,7,13)], [('color','red','green','fuschia')], ]; print header, start_html, start_form; foreach my $i (0..$#$answer) { # remove type of question from front and add 'Other' to end my $thingy = shift @{$answer->[$i]}; push @{$answer->[$i]}, 'Other (please specify)'; print "What is your favorite $thingy?", br, radio_group( -name => sprintf('%s%02d','question',$i + 1), -labels => { map { $question[$_] => $answer->[$i]->[$_] } (0..$#question)}, -values => \@question, -linebreak => 'true', ), textfield(sprintf('%s%02d','other',$i + 1)), p; } print submit, end_form, end_html;