| \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. |