
  * Proper documentation.

  * address or document the "close all cursors if you encounter an error"

  * Change the $BerkeleyDB::Error to store the info in the db object,
    if possible.

  * $BerkeleyDB::db_version is documented. &db_version isn't.

  * migrate perl code into the .xs file where necessary

  * convert as many of the DB examples files to BerkeleyDB format.

  * add a method to the DB object to allow access to the environment (if there
    actually is one).


Possibles

  * use '~' magic to store the inner data.

  * for the get stuff zap the value to undef if it doesn't find the
    key. This may be more intuitive for those folks who are used with
    the $hash{key} interface.

  * Text interface? This can be done as via Recno

  * allow recno to allow base offset for arrays to be either 0 or 1.

  * when duplicate keys are enabled, allow db_put($key, [$val1, $val2,...]) 


2.x -> 3.x Upgrade
==================

Environment Verbose
Env->open mode
DB cache size extra parameter
DB->open subdatabases	Done
An empty environment causes DB->open to fail
where is __db.001 coming from? db_remove seems to create it. Bug in 3.0.55
Change db_strerror for 0 to ""? Done
Queue	Done
db_stat for Hash & Queue	Done
No TxnMgr
DB->remove
ENV->remove
ENV->set_verbose
upgrade

    $env = BerkeleyDB::Env::Create
    $env = create BerkeleyDB::Env
    $status = $env->open()

    $db = BerkeleyDB::Hash::Create
    $status = $db->open()
