%sample= ( 'login' => {name=>"Login", width=>75, method=> 'textfield', field=>'login', size=>'10', max=>'8' }, etc... ); #### $q = new CGI; print $q->$sample{'login'}{'method'}->($sample{'login'}{'field'}, $sample{'login'}{'size'}, $sample{'login'}{'max'}); or do I need to do the following: print $q->$sample{'login'}{'method'}->(-name=>$sample{'login'}{'field'}, -size=>$sample{'login'}{'size'}, -max=>$sample{'login'}{'max'}); #### @report = ('last','first','phone','payment'); foreach (@report) { print qq|$sample{$_}{'name'}|; print $q->$sample{$_}{'method'}->(-name=>$sample{$_}{'field'}, -size=>$sample{$_}{'size'}, -max=>$sample{$_}{'max'}); print qq||; }