I like it!
You should consider it handy if you can't find any standard module in the perl distribution that handles DBI in your way.
One advise would be not to leave any expected variable without checking if it is empty (for example):
- Just fill it with a standard value.
- Or, return a very instructive error.
If you should compare it with the previously mentioned modules, it is a very interesting improvement to follow their code and aknowledge the differences. (And, perhaps, then try to upgrade your code to their same level, just to learn more :) )