Вот пример абсолютно рабочего запроса подобного типа(данные уже считанны из файла и занесены в массив):
my $insert = "INSERT INTO $table (time_stamp,elaps,client_ip,
type_http,
size,
method,
url,
ident,
host_name,
mime,
chanel) VALUES (?,?,?,?,?,?,?,?,?,?,?)";
foreach my $line_arr (@access_arr_in) {
my ($time_stamp,$elaps,$client_ip,$type_http,$size,$method,$url,$ident,$host_name,$mime,$chanel)=split(/[\\s\\t]+/,$line_arr);
$time_stamp=int $time_stamp;
chomp $chanel;
$sth->execute ($time_stamp,$elaps,$client_ip,$type_http,$size,$method,$url,$ident,$host_name,$mime,$chanel);
}
$sth->finish;
гораздо проще, по моему разумению, считать в массив и от туда загонять данные в базу. Врят ли у вас гигабайтные фалы...
Потом проще отработать сие на простом массиве в одну две записи и вы сразу же увидите проблему, причем, желательно весь запрос проверить сначала в mysql.
Возможно у вас не совпадают тип столюца с вводимыми данными.
P.S.:
там где split должно быть так (неотображает):
my ($time_stamp,$elaps,$client_ip,$type_http,$size,$method,$url,$ident,$host_name,$mime,$chanel)=split(/[\\s\\t]+/,$line_arr);