Unfortunately, Class::DBI has a boatload of constructors:
use Physemp::Model::Account;
my $account = Physemp::Model::Account->create();
$accounts = Physemp::Model::Account->search(name => 'Ben Bitdiddle');
$account = Physemp::Model::Account->retrieve(1);
my $accounts = Physemp::Model::Account->retrieve_all();
and I'm going to need them all over the place.
I was thinking something like this:
package My::Browser;
use base 'My::TT';
my $_cache;
sub pager_class {
my $class = ref $_[0] || $_[0];
$_cache->{$class} = $_[1] if @_ > 1;
return $_cache->{$class};
}
BEGIN {
(my $temp = __PACKAGE__->pager_class()) =~ s#::#/#igr;
require "$temp.pm";
}
package Physemp::Admin::Clients;
use base 'My::Browser';
use strict;
use warnings;
use Physemp::Model::Account;
__PACKAGE__->pager_class('Physemp::Model::Account');
But "My::Browser" would get compiled ahead of "Physemp::Admin::Clients". I was also thinking of using
multiple inheritance, but that won't fly.
I guess I want the equivalent of a C++ template class in Perl. |