CGI::Application builds on standard, non-proprietary technologies and techniques, such as the Common Gateway Interface and Lincoln D. Stein's excellent module. CGI::Application judiciously avoids employing technologies and techniques which would bind a developer to any one set of tools, operating system or web server.

The guiding philosophy behind CGI::Application is that a web-basedapplication can be organized into a specific set of "Run Modes." EachRun Mode is roughly analogous to a single screen (a form, some output, etc). All the Run Modes are managed by a single "Application Module" which is aPerl module. In your web server's document space there is an "InstanceScript" which is called by the web server as a CGI (or an Apache::Registryscript if you're using Apache + mod_perl).

CGI::Application is an Object-Oriented Perl module which implements anAbstract Class. It is not intended that this package be instantiated directly. Instead, it is intended that your Application Module will be implemented as a Sub-Class of CGI::Application.

Source: CGI::Application