On Wed, 29 May 2002 09:22:00 -0400
"Aaron Ross" <[EMAIL PROTECTED]> wrote:

: > 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 wonder, why do you program such a central module that dynamic? Why
do you chose that approach instead of this one?

     package Dispatcher;

     use Controller1;
     # ...
     use ControllerN;

     sub handler {
         my $r = Apache::Request->new(shift);
         my $ctl = $r->param('ctl');

         return Controller1::handler($r) if $ctl = 'login';
         # ...
         return ControllerN::handler($r) if $ctl = 'show_cart';
         return SERVER_ERROR;
     }

-- fxn

Reply via email to