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.