in reply to CGI and DBI, new to me...

You really shouldn't mix the functional-oriented and object-oriented styles of CGI.pm - just use one. Since you have already typed $query numerous times, just remove qw/:standard/ from use CGI;.

If you only need one CGI instance, the FO style is very convienent and just looks cleaner, IMHO. The OO style goes quite well with HTML::Template:

use strict; use CGI; use HTML::Template; my $q = CGI->new(); my $template = HTML::Template->new( filename => 'some.tmpl', associate => $q, ); # assign params to $template according to user input/validation print $q->header, $template->output;
The OO style also works nice for changing the behavior of CGI.pm, such as this silly example which changes the <h1> tag to 42:
use strict; my $q = My::CGI->new; print $q->h1('hello world'),$/; package My::CGI; use base qw(CGI); sub h1 { "<42>$_[1]</42>" }

jeffa

perl -MCGI=foo -le "print foo{bar=>baz},qux"