billyak has asked for the wisdom of the Perl Monks concerning the following question:

I've been developing some small web/cgi apps in Perl for about two years now. I am now planning on taking a rather large project that deals heavily with DBI and forms. Having never truly written a CGI based OO application, (and after much debate), I have decided to post here.

I'm pretty comfortable with using OO for data storage and retrieval, but it is the actual operation of the system that is in question. Ideally, I would want an engine: a robust, expandable beast that serves as the center of all operation for this site. My problem is that I have never done anything like this before, and have little to no idea where to start.

My original idea had quasi-hooks. When a module was requested, it added latches to a hash that went through a series of loops and ifs, launching subroutines depending on the hook and CGI parameter contents. My original implementation of this worked in my test applications, but it is becoming more and more apparent that it won't last long. I need a more robust solution, and I'm afraid I am completely inexperienced in OO engines and operation. (I did some searching here and didn't find anything too useful. I tried downloading the everything engine to peek at its source but the site was down.)

I would really appreciate any insight, design tips, things to look out for, or anything else that might be of use.