It's an infrastructure, essentially. It provides most of the pieces and you provide the missing bits to make an application. For example, CGI::Application provides a framework in that you only have to provide what each runmode does and how it presents itself. C::A does the rest (handling CGI input/output, validating URLs, dispatching runmodes, etc). Other Perl frameworks would include Maypole, Tk, and wxPerl. Other frameworks in general would include Ruby-on-Rails, MSVC++, VBA, and .NET - most MS products, for that matter.