Over the last view days of converting Handel from CDBI from DBIC, I took another look at Class::Accessor and Class::Data::Inheritable. One of the things I found myself wanting was something that did both the inheritable class data and supported instance data using the same accessor.
Well, as it turns out, Matt Trout had such a thing sitting in the repo. After some pod tweaking and slight dist preparation, Class::Data::Accessor 0.01 is coming to a CPAN mirror nearest you.
Its usage is roughly:
package Base;
use base qw/Class::Data:Accessor/;
__PACKAGE__->mk_classaccessor('AutoCommit' => 1);
print Base->AutoCommit; # prints 1
package BetterBase;
use base qw/Base/;
print BetterBase->AutoCommit; #prints 1
__PACKAGE__->AutoCommit(0);
print BetterBase->AutoCommit; #prints 0
print Base->AutoCommit; # prints 1
my $base = BetterBase->yournew();
print $base->AutoCommit; # prints 1
$base->AutoCommit(1);
print $base->AutoCommit; # prints 1