CGI::Application is a Perl framework intended to make it easier to create sophisticated, reusable Web-based applications. This module implements a methodology which can make Web software easier to design, easier to document, easier to write, and easier to evolve. CGI::Application builds on standard, non-proprietary technologies and techniques, such as the Common Gateway Interface and Lincoln D. Stein's excellent CGI.pm 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 HTML::Template module attempts to make using HTML templates simple and natural. It extends standard HTML with a few new tags for variables, loops, if/else blocks and includes. A file written with HTML and these new tags is called a template. Using this module you fill in the values for the variables and loops declared in the template. This allows you to seperate design (the HTML) from the data, which you generate in the Perl script. While there are many other HTML template systems available, this module is simple and fast. It doesn't try to reinvent Perl CGI, it just augments HTML with a few new and very useful abilities.
The Image::Size module for Perl provides a clean interface for fetching image dimensions (and type, when unknown) from graphics files in a wide variety of common formats. It is a pure Perl extension (no C or XS linking required) that has been tested on a variety of UNIX, Linux and BSD systems, as well as MacPerl and Windows ports of Perl. It was designed around and tuned for use in CGI application development, but is useful in other areas as well.
QuickImage is an open-source utility for adding drawings and graphs to your Web applications. It was designed primarily for use with the SteelBlue Application Server, but is general enough to be used in many programming environments. The QuickImage package contains both Java classes that can draw images on the client's browser and a C++ program that can draw images on the Web server. They both interpret the same set of graphics commands, and you only need one version to add drawings to your Web applications.
The Sethi Family Guestbook is a multi-format guestbook script written as a single PHP file that requires no installation. It features page spanning, (optional) private comments, user-selection of number of entries per page to display, multiple guestbook formats (elegant, simple, or standard), and background color. No database is required. It supports image verification using random text as part of a CAPTCHA system. It also uses other techniques to foil spam robots. It supports multiple formats, mangled email display, and a fully customizable interface.
SteelBlue is an Open Source Web application server similar to Cold Fusion. It extends HTML with tags to execute SQL commands, perform type checking on user input, loop over sections of code, and manipulate data. In addition, it has a Perl-like scripting language that can be embedded directly into the HTML for complex data manipulation. SteelBlue runs as a CGI script on Linux, UNIX variants (via gcc 2.8), and Win32. It includes native support for most popular relational databases and the embedded scripting language is extensible though a C++ API. Included in the distribution are a book about programming SteelBlue, many examples, and a full bulletin board application.
EtText is a simple plain-text format which allows conversion to and from HTML. It provides an easy-to-edit, easy-to-read and intuitive way to write HTML, based on plain-text markup conventions. Like most simple text markup formats (POD, setext, etc.), EtText markup handles the usual things: insertion of paragraph tags, header recognition, and markup. However it also adds a powerful link markup system, and tries to generate code which conforms to XHTML.
The site tools package has classes to support a standard look and feel through templates that support somewhat advanced functionality like object method binding, custom escape/formatting functions, and basic looping and conditionals. It also supports SQL forms with foreign key handling with drop boxes or lists, and multiple field types like checkboxes, text boxes, and text areas. Add/delete/edit functionality is handled by the Form class. Tables can be created in the same way, and support auto-sorting by using hyperlinked headers, and next/prev handling. Both forms and tables can be bound to templates to adjust the look and feel or layout, without losing any functionality.
ThumbNails is an automated system for creating and maintaining web sites containing large numbers of digital photographs or other images. It will go through a group of directories filled with pictures, make thumbnail images of each picture, make HTML pages for each directory showing clickable thumbnails for each picture, and make an overall index.html document for the HTML pages it creates. It can use a MySQL database to hold picture titles, captions, and other information. The database information can be edited over the web, and can be displayed along with the pictures. It includes a daemon which periodically checks the pictures directories and database (if used), updating the web site automatically as needed.