in reply to Plugin based Perl app

chromatic's ideas sound pretty solid.
The inheritance part should be pretty easy also. Just modify the @ISA array. Maybe write a generic plugin module to provide common routines. Then force the plugins to inherit from the plugin module. So in a different plugin type module do:
use plugin; push(@ISA, "plugin");
That way routines will be looked for first in the local package then they will be looked for in the packages named in @ISA. The plugin package might provide routines to set the subroutine references etc.