my @fields = qw( ict_category ict_type ict_subtype ict_instance ict_assign2_grp ict_severity_lvl ict_date ); my @placeholders = map {'?'} @fields; { local $" = ','; $sqlwi = "INSERT INTO $ICT (@fields) VALUES(@placeholders)"; } $dbh->{RaiseError} = 1; eval { my $sth = $dbh->prepare($sqlwi); $sth->execute( $a_catg, $a_type, $a_styp, $a_inst, $a_agrp, $a_sevl, $dat3, ); }; if ($@) { # unable to insert, error message is in $@ ... }