in reply to Allowing the over riding of a program's design

It's doable. You just need a flexible dispatch mechanism. For example, you could say that an application has to be object oriented, inheriting from a certain application class. This allows you to take advantage of polymorphism. (Doesn't CGI::Application do this?)

Another approach is to require everything to register handlers for operations. Keep them in a hash, keyed by operation name, and store sub references. If you assume everything will take a request object (or the CGI object) as its first parameter, you'll do pretty well.

It can also be done with individual scripts, but it's a lot more flexible if you use modules with (at least) some interface or objects.

  • Comment on Re: Allowing the over riding of a program's design