Storing Multilevel Data in DBM Files

If we were to rewrite the user registration system given in this chapter using GDBM files for data storage, we would achieve some significant advantages. In particular, the system’s performance would stay nice and snappy, even as the number of users grew larger. Rather than jumping right into a rewrite based on GDBM storage, though, let’s take one more step.

A limitation of DBM files is that they store only key-value pairs. If we want to store a more-complex structure (like the HoH used in our registration system) we still have to go through the hassle of serializing and deserializing in order to create and read the hash values. This is really a pain, since it would be so cool to be able to treat the GDBM file like a real hash, capable of storing complex values. All it would take, really, is some standard code to do the serializing/deserializing. Someone really ought to write some software to do that and stick it in CPAN.

And of course, someone has. Two someones, in fact: Gurusamy Sarathy and Raphael Manfredi, authors of the MLDBM module. After installing it like any other CPAN module, a check of the documentation will reveal that, while it uses the Data::Dumper module to do its serializing by default, we will get better performance by installing Raphael Manfredi’s Storable module. (Storable uses an extension to Perl written in the C language to do the serializing and deserializing, so it runs really fast.)

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.