DBM::Deep is a favorite of mine. While it doesn't cache in the way you're looking for, it uses minimal file-system overhead. And, the nice thing is that it uses standard Perl datastructures.
My criteria for good software:
Does it work?
Can someone else come in, make a change, and be reasonably certain no bugs were introduced?