use DBI; # declared variables - dsn, etc... my @columns = keys %$input; my $columns = join ', ', @columns; my @values = map {$input->{$_} } @columns; my $vars = join ',', map { "?" } @columns; my $conn = DBI->connect($dsn, $user, $pass); my $sql = "Insert Into $table ($columns) values ($vars)"; my $sth = $conn->prepare($sql); $sth->execute(@values); # return $sth->{int_id} ?