One more thing. Moving f_dir to attributes will show that DBD::DBM
ignores a few errors too:
perl -Ilib -MDBI -wle'DBI->connect("dbi:DBM:",undef,undef,{f_dir=>"/tmp/
somewhere/not_yet/existing/far/far/away"})->do(q{create table users (id
integer, name varchar (64))})'
Use of uninitialized value in sprintf at lib/DBI/SQL/Nano.pm line 25.
DBD::DBM::db STORE failed: No such directory '/tmp/somewhere/not_yet/
existing/far/far/away' at /pro/lib/perl5/site_perl/5.10.0/i686-
linux-64int/DBI.pm line 708.
DBD::DBM::db do failed:
Execution ERROR: Cannot CREATE './users.pag' because it already exists
at lib/DBD/File.pm line 571
called from -e at 1.
[for Statement "create table users (id integer, name varchar (64))"]
at -e line 1.
FWIW, DBM.pm still uses "die" instead of "croak"
Sorry I do not have time to fix right now