examples/db/test_dbi.t
#!/usr/bin/perl
use strict;
use warnings;

use Test::More tests => 4;
use DBI;

system "$^X examples/dbi/create_sample.pl";
END { unlink 'sample.db' }

my $email = 'foo@bar.com';
my $pw    = 'secret'; 

my $dbh = DBI->connect("dbi:SQLite:dbname=sample.db");
my $sth = $dbh->prepare('SELECT * FROM people WHERE email=? AND pw=?');
$sth->execute($email, $pw);

my $h = $sth->fetchrow_hashref('NAME_lc');
ok($h, "row received");
is($h->{fname}, 'Foo', 'fname');
is($h->{lname}, 'Bar', 'lname');

$h = $sth->fetchrow_hashref('NAME_lc');
ok(!$h, "no more rows");

$dbh->disconnect;

Results:

1..4
ok 1 - row received
ok 2 - fname
ok 3 - lname
ok 4 - no more rows