\section{Standard Modules \sectcode{anydbm} and \sectcode{dumbdbm}} \stmodindex{anydbm} \stmodindex{dumbdbm} \code{anydbm} is a generic interface to variants of the DBM database--DBM, GDBM, or dbhash. If none of these modules is installed, the slow-but-simple implementation in module \code{dumbdbm} will be used. Both modules provide the same interface: % not the best solution, but it's what you get for documenting both % at the same time. \renewcommand{\indexsubitem}{(in modules anydbm, dumbdbm)} \begin{funcdesc}{open}{filename\optional{\, flag\, mode}} Open the database file \var{filename} and return a corresponding object. The optional \var{flag} argument can be \code{'r'} to open an existing database for reading only, \code{'w'} to open an existing database for reading and writing, \code{'c'} to create the database if it doesn't exist, or \code{'n'}, which will always create a new empty database. If not specified, the default value is \code{'r'}. The optional \var{mode} argument is the \UNIX{} mode of the file, used only when the database has to be created. It defaults to octal \code{0666} (and will be modified by the prevailing umask). \end{funcdesc} The object returned by \code{open()} supports most of the same functionality as dictionaries; keys and their corresponding values can be stored, retrieved, and deleted, and the \code{has_key()} and \code{keys()} methods are available. Keys and values must always be strings. Both modules also export the exception \code{error}, which is raised for various problems. The \code{anydbm.error} exception is simply a different name for the \code{error} exception of the underlying implementation module used.