use CGI; my $q = CGI->new; foreach my $parm ($q->param) { if ($parm =~ m/^add_(.*)$/) { sub adjust_qty($1, $q->param($parm)); } if ($parm =~ m/^sub_(.*)$/) { sub adjust_qty($1, -($q->param($parm))); } } sub adjust_qty { my ($key, $qty) = @_; my $sql = qq(update table set qty = qty + $qty where key = $key); # do you need DBI help here? }