Check DBI and look for "placeholder" and "bind_param" (primarily for the discussion therein - "execute" will bind your params to an insert statement if you pass it an array)
Quick example:
my $dbh;
eval { $dbh = DBI->connect( $dsn, $user, $pass, { 'RaiseError' => 1 }
+) };
my $insert_query = 'insert into queues values( ?, ?, ?, ?, ?, ?, ?, ?,
+ ? );';
my $st_handle;
eval { $st_handle = $dbh->prepare( $insert_query ) };
eval { $st_handle->execute( @row_values ) };
Checking $@ after each call lets you handle the errors encountered your own way. (Example is woefully incomplete, but culled from an existing program. Modification is left as an exercise for the reader.)
--chargrill
s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; =
qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)