#!/pro/bin/perl use 5.16.2; use warnings; use DBI; use Text::CSV_XS qw( csv ); my $n_columns = 4; my $dbh = DBI->connect ("dbi:SQLite:vodafone.db", undef, undef, { RaiseError => 1, PrintError => 1, AutoCommit => 1, ChopBlanks => 1, ShowErrorStatement => 1, FetchHashKeyName => "NAME_lc", }) or die "$DBI::errstr\n"; my $sth = $dbh->prepare (qq; insert into VoucherMRPDataTable_Frt_TariffModel values (@{[join ", " => ("?") x $n_columns]}); ); csv (in => "abc.csv", sep_char => ";", headers => "skip", fragment => "col=1-$n_columns", on_in => sub { $sth->execute (@{$_[1]}); }, ); $dbh->commit; $dbh->disconnect;