in reply to Replacing DBI->do()

The documentation lists this format for using bind values:

$rv = $dbh->do($statement, \%attr, @bind_values);
I am surprised that your snippet even compiles or passes the SQL parser, but in any case, I don't think that you are doing what you think you are doing.

To expand on the synopsis example, do:

my $statement = q{INSERT INTO....}; my %attr = (); my @bind_values = ( 'NULL', $first, $last ); my $rv = $dbh->do( $statement, \%attr, @bind_values );
and see what happens.

--MidLifeXis