> Is there a neat way of dynamically loading in the appropriate control
> subclass? Something proven and widely used.
For what it's worth, I use the eval trick too. Although it may seem a
little clunky, I believe it is "proven and widely used". The DBI.pm
module uses code like this to load in the DBD drivers:
my $driver_class = "DBD::$driver";
eval "package DBI::_firesafe; require $driver_class";
I'm not sure this answers your MVC questions, but maybe it will make you
feel more comfortable with your solution.
hth, aaron