my $thisrow; my @rows; my %fields = ( name => sub { textfield(-name=>$_[0],-size=>50,-maxlength=>80) }, email => sub { textfield(-name=>$_[0],-size=>50,-maxlength=>80) }, site_name => sub { textfield(-name=>$_[0],-size=>50,-maxlength=>80) }, descripton => sub { textfield(-name=>$_[0],-size=>50,-maxlength=>80) }, comments => sub { textarea(-name=>$_[0],-cols=>50,-rows=>10) }, ); foreach my $key (keys %fields) { $thisrow = td({-align=>'right',-valign=>'TOP'},$key) . td({-align=>'left',-valign=>'TOP'}, $fields{$key}->($key)) ; push(@rows,$thisrow); }