I was asking my cubicle mate the other day whether or not such a package existed. He did not know of a specific one, so I posted the topic here. As a regular viewer of the recent additions to CPAN, this morning my cubicle mate made mention of a recently added package....Object::WithParams. Yayyy.
I must say I feel a little honoured to have planted the thought that so quickly turned into a module.