use DBIx::Simple; unlink 'testdb.sqlite'; # drop the database file my $db = DBIx::Simple->connect('dbi:SQLite:testdb.sqlite'); # recreate an empty database file $db->query(<<'^CREATE^'); create table test ( id integer not null primary key, name text not null unique, value text, num integer ) ^CREATE^ print $db->query("insert into test (name, value, num) values (?, ?, ?)", 'foo', 'one', 1)->rows ? 'Y' : 'N'; print $db->query("insert into test (name, value, num) values (?, ?, ?)", 'bar', 'two', 2)->rows ? 'Y' : 'N'; print $db->query("insert into test (name, value, num) values (?, ?, ?)", 'baz', 'three', 3)->rows ? 'Y' : 'N'; print $db->query("insert into test (name, value, num) values (?, ?, ?)", 'foo', 'fails', 4)->rows ? 'Y' : 'N'; #won't work = OK print $db->query("insert or replace into test (name, value) values (?, ?)", 'bar', 'replaces')->rows ? 'Y' : 'N'; # no number print "\n"; foreach ($db->query('select * from test')->arrays) { local($\, $,) = ("\n", "\t"); print map { defined $_ ? $_ : 'NULL' } @$_; }