in reply to Maintaining state in modules
Why not make a base class and subclass it with a way to do it with dbm's. Then, subclass to use MySQL (or whatever). People can subclass to use with whatever data store they wish to use (a DB, flat file, directory structure, etc...) that way your design will make it more portable.
Also, look on the CPAN, and search Google for ways other are maintaining state, so you don't re-invent any wheels.