my $db_obj = MyApp::BerkeleyDB->connect("dbname.db"); .... # then I can use BerkeleyDB internal methods $db_obj->db_put('key', 'value'); .... # use my own functions.. $db_obj->myfunc("src", ...); .... #### package Myapp::BerkeleyDB use warnings; use strict; use base 'BerkeleyDB'; use BerkeleyDB; # the following code apparently not working!!! sub connect { my ($class, $dbname) = @_; return new BerkeleyDB::Btree -Filename => $dbname, ...... or undef; }