use DBI; use Data::Dumper; my $dbh = DBI->connect("dbi:SQLite:pod.wiki.sqlite.db") or die $DBD::err; warn "database name is ", $dbh->{Name}; my $sth = $dbh->prepare("SELECT * FROM content limit 0"); warn $sth->execute; for my $attr( qw[ NUM_OF_PARAMS NUM_OF_FIELDS NAME NAME_hash TYPE PRECISION SCALE NULLABLE]){ eval { warn $attr, ' ', Dumper($sth->{$attr}); }; warn $attr,' is unavailable (', 1||$@, ')' if $@; } __END__ database name is pod.wiki.sqlite.db at dbi.table.info.pl line 5. 3 at dbi.table.info.pl line 7. NUM_OF_PARAMS $VAR1 = 0; NUM_OF_FIELDS $VAR1 = 5; NAME $VAR1 = [ 'name', 'version', 'text', 'modified', 'comment' ]; NAME_hash $VAR1 = { 'text' => 2, 'modified' => 3, 'comment' => 4, 'version' => 1, 'name' => 0 }; TYPE is unavailable (1) at dbi.table.info.pl line 11. PRECISION is unavailable (1) at dbi.table.info.pl line 11. SCALE is unavailable (1) at dbi.table.info.pl line 11. NULLABLE is unavailable (1) at dbi.table.info.pl line 11.