The tie Function

We set up access to a DBM file from within our Perl script using the tie function, which ties a Perl hash variable to the DBM file on disk. From that point on, we work with the tied Perl hash just like we would with any other hash, adding, deleting, or modifying individual elements. As we perform those manipulations, Perl updates the DBM data on disk. When we are finished we use the untie function to sever the connection between the hash and the DBM file.

The only hard part is getting the syntax of the tie statement right. Here’s how a typical tie statement looks for accessing a GDBM file for read-only access:

tie %HASH, 'GDBM_File', 'my_file.gdbm', &GDBM_READER, 0644;

To tie to a GDBM file in order to be able to read from, write to, or create the file, we would use a tie statement that looks like this:

tie %HASH, 'GDBM_File', 'my_file.gdbm', &GDBM_WRCREAT, 0644;

The individual arguments to the tie function are as follows:

  • The name of the hash variable we’re tying to the DBM file—in this example, %HASH. I fell into the habit of using all uppercase letters for my tied DBM file variable names early on; it’s analogous to using all uppercase letters for filehandle names and is meant to indicate that there’s an external file (the DBM file) involved with the variable. There’s no law that says you have to use the all-uppercase convention for your tied DBM hash variables, but it has worked well for me.

  • The name of the module that implements the tie operation we’re performing—in ...

Get Perl for Web Site Management now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.