%fields = ( 'name', 'textfield', 'email', 'textfield', 'site name', 'textfield', 'description', 'textfield', 'comments', 'textarea' ); foreach $key (keys(%fields)) { $thisrow = td({-align=>right,-valign=>TOP},$key); if($fields{$key} eq 'textfield'){ $thisrow .= td({-align=>left,-valign=>TOP}, textfield(-name=>$key,-size=>50,-maxlength=>80) ); } if($fields{$key} eq 'textarea'){ $thisrow .= td({-align=>left,-valign=>TOP}, textarea(-name=>$key,-cols=>50,-rows=>10) ); } push(@rows,$thisrow); } print table({-border=>1,-width=>'50%'}, Tr(\@rows) ); #### $thisrow .= td({-align=>left,-valign=>TOP}, $fields{$key}(-name=>$key)); # make a textfield # because the value is # 'textfield' - DWIM!