Chapter 20. Storing Data in DBM Files

This chapter continues the example begun in Chapter 19, in which we created an automated user-registration system for a web site. This chapter shows how to improve that system by converting it to using DBM files for its data storage.

Data Storage Options

The user-registration system described in Chapter 19 stores all the information it uses in flat text files. There are a lot of reasons why flat text files make really nice data storage locations:

  • They’re flexible.

  • They’re easy to use.

  • They’re easy to view and edit, which helps with debugging.

  • They require no additional software libraries.

  • They can be moved from one computer to another without becoming corrupted (assuming you take the appropriate care with line-ending conversions).

Flat-text-file storage has its limitations, however. For one thing, we have the hassle of serializing the data before we store it, and deserializing it when we read it back in. We need to make sure that the field- and record-delimiting characters we use don’t occur in the data itself, or, if they do occur in the data, that they are appropriately escaped and unescaped as the data is stored and read back in from storage.

A more-serious limitation of flat-text-file storage is performance. In order to manipulate a particular record we must read the whole data file into memory, reconstruct the original data structure, modify it, and then write the whole thing back out again. For a few hundred or even a few thousand records ...

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.