use CGI; use strict; my $query = CGI->new(); # set up my defaults my %parameters = (name => ["Anonymous"], address => ["No fixed abode"], phone => ["Not Available"]); # pull everything out of param and put in # my hash. foreach my $key ($query->param()) { $parameters{$key} = [$query->param($key)]; } #### foreach my $key (keys %defaults) #### # then to do your substitution: $SQLStatement =~ s/\$(\w+)/$parameters{$1}[0]/eg; #### foreach my $key (keys %defaults) { foreach my $value (@$key) { $SQLStatement =~ s/\$(\w+)/$value/eg; # then use your $SQLStatement .... } }