Use SDBM_File with the Perl built-in tie function to establish
the connection between the variable and the file.
tie %hash, SDBM_File, $basename, $modeflags, $perms;
tie %hash, SDBM_File, $dirfile, $modeflags, $perms, $pagfilename;
$basename is the base filename for the database. The database is two
files with .dir and .pag extensions appended to $basename,
$basename.dir (or .sdbm_dir on VMS, per DIRFEXT constant)
The two filenames can also be given separately in full as $dirfile
and $pagfilename. This suits for two files without .dir and .pag
extensions, perhaps for example two files from File::Temp.
$modeflags can be the following constants from the Fcntl module (in
the style of the open(2) system call),
O_RDONLY read-only access
O_WRONLY write-only access
O_RDWR read and write access
If you want to create the file if it does not already exist then bitwise-OR
(|) O_CREAT too. If you omit O_CREAT and the database does not
already exist then the tie call will fail.
O_CREAT create database if doesnt already exist
$perms is the file permissions bits to use if new database files are
created. This parameter is mandatory even when not creating a new database.
The permissions will be reduced by the users umask so the usual value here
would be 0666, or if some very private data then 0600. (See
umask in perlfunc.)