DBD::CSV rocks, it can work in pure perl:
#!/usr/bin/perl -w
use strict;
use warnings;
use lib 'lib';
BEGIN { $ENV{DBI_PUREPERL} = 2; } use DBI;
use Text::CSV_PP; *Text::CSV_XS::=\%Text::CSV_PP::; $INC{'Text/CSV_XS.pm'}++;
use Clone::PP; BEGIN { *SQL::Statement::clone=\&Clone::PP::clone; }
$INC{'Clone.pm'}++;
my $dbh = DBI->connect("DBI:CSV:f_dir=db", "", "", { RaiseError => 1 });
for my $sql (split /;/, "
CREATE TABLE user ( user_name TEXT, phone TEXT );
INSERT INTO user VALUES ('Fred Bloggs','233-7777');
INSERT INTO user VALUES ('Sanjay Patel','777-3333');
INSERT INTO user VALUES ('Junk','xxx-xxxx');
DELETE FROM user WHERE user_name = 'Junk';
UPDATE user SET phone = '999-4444' WHERE user_name = 'Sanjay Patel';
SELECT * FROM user ORDER BY user_name
"){
next if $sql =~ /^\s*#/;
my $sth = $dbh->prepare ($sql);
$sth->execute;
$sth->dump_results if $sth->{NUM_OF_FIELDS};
}
requirements:
- Clone-PP
- DBD-CSV
- DBI
- Params-Util
- SQL-Statement
- Text-CSV