in reply to To tie or to dbmopen

So the question is "To tie or dbmopen?" I say to tie. Why, it's simple, you can only dbmopen hashes, but you can tie damn near anything (arrays, scalars, filehandles ...).

perldoc -f tie reveals everything you need to know (don't know what you're talking about)

    tie VARIABLE,CLASSNAME,LIST
            This function binds a variable to a package class that will
            provide the implementation for the variable. VARIABLE is the
            name of the variable to be enchanted. CLASSNAME is the name of a
            class implementing objects of correct type. Any additional
            arguments are passed to the "new" method of the class (meaning
            "TIESCALAR", "TIEHANDLE", "TIEARRAY", or "TIEHASH"). Typically
            these are arguments such as might be passed to the "dbm_open()"
            function of C. The object returned by the "new" method is also
            returned by the "tie" function, which would be useful if you
            want to access other methods in CLASSNAME.

            Note that functions such as "keys" and "values" may return huge
            lists when used on large objects, like DBM files. You may prefer
            to use the "each" function to iterate over such. Example:

                # print out history file offsets
                use NDBM_File;
                tie(%HIST, 'NDBM_File', '/usr/lib/news/history', 1, 0);
                while (($key,$val) = each %HIST) {
                    print $key, ' = ', unpack('L',$val), "\n";
                }
                untie(%HIST);

            A class implementing a hash should have the following methods:

                TIEHASH classname, LIST
                FETCH this, key
                STORE this, key, value
                DELETE this, key
                CLEAR this
                EXISTS this, key
                FIRSTKEY this
                NEXTKEY this, lastkey
                DESTROY this
                UNTIE this

            A class implementing an ordinary array should have the following
            methods:

                TIEARRAY classname, LIST
                FETCH this, key
                STORE this, key, value
                FETCHSIZE this
                STORESIZE this, count
                CLEAR this
                PUSH this, LIST
                POP this
                SHIFT this
                UNSHIFT this, LIST
                SPLICE this, offset, length, LIST
                EXTEND this, count
                DESTROY this
                UNTIE this

            A class implementing a file handle should have the following
            methods:

                TIEHANDLE classname, LIST
                READ this, scalar, length, offset
                READLINE this
                GETC this
                WRITE this, scalar, length, offset
                PRINT this, LIST
                PRINTF this, format, LIST
                BINMODE this
                EOF this
                FILENO this
                SEEK this, position, whence
                TELL this
                OPEN this, mode, LIST
                CLOSE this
                DESTROY this
                UNTIE this

            A class implementing a scalar should have the following methods:

                TIESCALAR classname, LIST
                FETCH this,
                STORE this, value
                DESTROY this
                UNTIE this

            Not all methods indicated above need be implemented. See the
            perltie manpage, the Tie::Hash manpage, the Tie::Array manpage,
            the Tie::Scalar manpage, and the Tie::Handle manpage.

            Unlike "dbmopen", the "tie" function will not use or require a
            module for you--you need to do that explicitly yourself. See the
            DB_File manpage or the Config module for interesting "tie"
            implementations.

            For further details see the perltie manpage, the section on
            "tied VARIABLE".

____________________________________________________
** The Third rule of perl club is a statement of fact: pod is sexy.