in reply to Berkeley Use

use DB_File; my ($handle,%db); $handle = tie(%db, 'DB_File'); $db{'Larry'} = 'Wall';
I think the docs for these nodes pretty much sum up the modules use and the differences. DB_File is for BDB 1 API and BerkeleyDB is for BDB version 2,3,4 API. In my hands for simple key/value storage this is much faster than the overhead of DBI/mysql.

Replies are listed 'Best First'.
Re: Re: Berkeley Use
by jettero (Monsignor) on Sep 29, 2003 at 21:22 UTC
    The docs for DB_File state that:

    If you want to make use of the new features available in Berkeley DB 2.x or greater, use the Perl module Berke- leyDB instead.

    is there some great disadvantage to using that module?

      If you want/need the newer features I would say sure use BerkeleyDB. I'm a bit of a minimalist, so if I don't need the newer stuff, I like to stay with the simpler module. I probably just stick with what I know better I guess.

      Disadvantages - BerkeleyDB doesn't come in the perl core, DB_file does. Scripts which rely on the newer API features won't be directly portable to a machine which doesn't have this module installed. If other people are going to use your code I would stick with DB_File. This is a minor quibble, but it depends on sophistication of your users.

      Advantages - the OO modules and the new features. Queues are very nice. Also you can setup multiple dbs within a file eliminating the need to create multiple index files for different datasets. Lots more things, really depends on what you need.

Re: Re: Berkeley Use
by jettero (Monsignor) on Sep 29, 2003 at 20:10 UTC
    Oh, awesome. I'm not real sure how to use this yet, but now I have some reading to do. Thanks.