|Subject:||_croak should be a class method|
Class::DBI::Pg::_croak is defined and used by Class::DBI::Pg as a simple sub that's called directly. Unfortunately, Class::DBI defines and uses it as a class method. The result of this is that when Class::DBI croaks, it ends up calling Carp::croak($self, $msg), so you get the stringified class/object stuffed into the exception. I'm guessing that Class::DBI::Pg::_croak was not supposed to override the like-named method in Class::DBI. It should either be renamed, or changed to be a class method.