use HDB ; my $HDB = HDB->new( type => 'sqlite' , file => 'test.db' , ) ; ... or ... my $HDB = HDB->new( type => 'mysql' , host => 'some.domain.com' , user => 'foo' , pass => 'bar' , ) ; $HDB->create('users',[ 'user' => 100 , 'name' => 100 , 'age' => 'int(200)' , 'more' => 1024*4 , ]); $HDB->insert( 'users' , { user => 'joe' , name => 'joe tribianny' , age => '30' , more => '*' , } ) ; ... or ... $HDB->update( 'users' , 'user == joe' , age => '40' ) ; ... or ... $HDB->users->insert( { user => 'joe' , name => 'joe tribianny' , age => '30' , more => \%hash , } ) ; my %hash_decoded = $HDB->select('users' , 'name =~ joe' , col => 'more' , return => '$$%' ) ; ... my @sel = $HDB->select('users' , 'name =~ joe' , return => '@%' ) ; foreach my $sel_i ( @sel ) { my %cols = %$sel_i ; ... } ... or ... my @sel = $HDB->select('users' , 'name != ross' , return => '@$' ) ; foreach my $sel_i ( @sel ) { my @cols = split("::",$sel_i) ; ... } ... my @tables = $HDB->tables ; ... my @sel = $HDB->cmd("select * from foo", '@@') ; ... # Using DBI: my $sth = $HDB->dbh->prepare("INSERT INTO users VALUES (?, ?, ? , ? , ?)") ; $sth->execute("foo", "barr", "foo\@mail.com" , '' , 1) ;