Reviews by Dave Williams



FLV-Info (0.24) ****

Useful for extracting meta-data from swf files.

Storable (2.30) *****

Great module, very fast.

Spreadsheet-XLSX (0.13-withoutworldwri) ****

Useful for reading xlsx files. Would be great if it could both read and write xlsx.

DBM-Deep (2.0004) ****

At first I was totally in love with this module. It was simple, clean, quick, and, dare I say, fun. Deep really does enable turn-key persistence for multi-level data structures, in pure-perl (which is cool).

I still like DBM::Deep a lot, and I might still use it, but the performance became way too slow for my application (Vogon::Poetry is faster). Now I am using BerkeleyDB (which is weird and poorly documented) and achieving artificial multi-leveling via Storable::freeze and Storable::thaw, and sadly, this hackish approach is way faster but much less fun :(

Besides, if I wanted to serialize all of my data structures before hashing, I would not have picked up DBM::Deep in the first place!

A small example:

I had a queue of object refs which I would shift if a certain condition was met on the 0-ith item. To evaluate the condition (a simple regex on one of the properties) and to shift the queue began taking over a minute when I gave up using Deep. At that rate, my program would have run for months instead of days!


Super easy to use, portable, well documented, and fast when used in simple ways.


Really slow with complex data structures. (and by complex, I mean Deeper than a simple hash). Also, Version 1.x seems a lot slower than 0.x. One more odd thing about Deep was all of the 'wide character in print' warnings. I had to escape all of my ord($_) > 255 characters into \x{NNN} format prior to storing...


I would use this module to make databases whenever ease of use, consistency and fun outweigh the sluggishness. I would not use this module to create persistent fancy things like a hash of hashes of arrays of hashes... for example...

In the future:

If this module could get faster, it would take over the world...