I think you need to answer a couple of questions first:
- What do you expect to happen when you serialize the DB connection? Should the DB connection be closed? What should be stored in the serialized data structure?
- What do you expect to happen when you de-serialize the DB connection? Should the connection happen immediately? What about waiting until the first query because you may not actually use the DB connection at every given de-serialization.
There are some further concerns:
- Should passwords be stored? If so, how?
- How should DBI connections using DBD::Excel or DBD::CSV work?
- What should happen if you de-serialize the thing and attempt to use the DB connection on a box that doesn't have the right things installed?
And I'm sure that I'm missing some concerns. In other words, serializing stuff that uses external resources is non-trivial. I've run into the same problem with
DBM::Deep and I don't have a really good way to solve it as of yet.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?