#!/usr/bin/perl -w use DBI; use Carp; mkdir 'db'; my $dbh = DBI->connect('dbi:DBM:f_dir=db', undef, undef) || croak DBI->errstr; my @sql = ( "create table cgiapp_pages (pageid varchar(255), lang varchar(2), internalid int)", "create table cgiapp_structure (internalid int)", "create table cgiapp_lang (lang varchar(2))", "insert into cgiapp_pages (pageid, lang, internalid) values('test1', 'en', 0)", "insert into cgiapp_lang (lang) values('en')", "insert into cgiapp_structure(internalid) values(0)", "SELECT * FROM cgiapp_pages p, cgiapp_lang l, cgiapp_structure s WHERE p.lang = l.lang AND p.pageid = 'test1' AND p.internalid = s.internalid", ); foreach my $c (@sql) { my $sth = $dbh->prepare($c) || croak $dbh->errstr; $sth->execute || croak $dbh->errstr; if ($c =~ /^SELECT/) { my $hash_ref = $sth->fetchrow_hashref; print $hash_ref ? %$hash_ref : "NO ROW"; } $sth->finish; } $dbh->disconnect; system('rm -rf db');