my $q = new CGI;
my %vars = $q->Vars; # Fetch all CGI parameters
my %db_vars = pop_defaults(); # Fetch from database
# Override defined values from database
$vars{$_} = $db_vars{$_} for (keys %db_vars);
# Fetch all defaults from the DB and return as a hash ref
sub pop_defaults { my $r = { }; ... return $r }
####
$vars{$_} = $db_vars{$_} // $q->param($_) for ($q->param);
####
%vars{keys %db_vars} = values %db_vars;