Alberto Attilio Reggiori


DBMS - Perl5 access to the dbms server.


    use DBMS ;
    $x=tie %hash, 'DBMS', $type,$name;

    # Use the %hash array.
    $hash{ aap } = noot;
    foreach $k (keys(%hash)) {
        print "$k - $hash{ $k }\n";
    # and destroy..
    undef $x;


DBMS is a module which allows Perl programs to make use of the facilities provided by the dbms server. The dbms server is a small server with a bit of glue to the Berkeley DB (> 1.85) and some code to listen to a few sockets.


As the devil is in the details... this module supports two functions which are not part of the normal tie interface; atomic counter increment and atomic list retrival.

The increment function increments a counter before it returns a value. Thus a null or undef value can safely be taken as an error.


    use DBMS ;
    $x=tie %hash, 'DBMS', $type,$name
        or die "Could not ty to $name: $!";

    $hash{ counter } = 0;

    $my_id = $x->inc( 'counter' )
        or die "Oi";

    # and these are not quite implemented yet..
    @keys = $x->keys();
    @values = $x->values();
    @all = $x->hash();


$Id:,v 2001/01/18 09:53:21 reggiori Exp $


Well, ah hmmm. For ParlEuNet that is, for now that is..


Memory management not fully checked. Some speed issues, I.e. only about 100 TPS. No proper use of $! and $@, i.e. it will just croak, carp or return an undef. And there is no automagic retry should you loose the connection.


Blame Dirk-Willem van Gulik <> for now. You can send your postcards and bugfixes to


perl(1), DB_File(3).

1 POD Error

The following errors were encountered while parsing the POD:

Around line 4:

Unknown directive: =NAME