PerlGen: An Open Source Code Generator for Building Perl Web Applications


Building web-based applications can be a technically complex, time consuming process. The purpose of this presentation is to introduce an application framework (OpenWCM), an application programming interface (WCM), and the PerlGen source code generator, in order to help Perl developers in build highly-functional web applications while slashing development time and cost. All web applications face a common set of problems at the inception of each project, including designing an application security policy, developing user account functions (login, logout, change password, lost password, signup, unsubscribe, member profile, and administrative controls), architectural issues (cookies, encryption, error handling, logging, database interface, application configuration, and performance scaling), and presentation issues (HTML templating, content management, site search, and error reporting). All of this code is simply “scaffolding” that must be addressed before a single line of code can be written to build the desired target application.

OpenWCM is a full-featured open source web content management system that provides a rich API for developing web applications. OpenWCM includes a Perl source code generator, known as PerlGen, which can accelerate web development by a factor of 20 times or more. Using OpenWCM for the framework, and PerlGen to build new applications, development time for new web applications is significantly reduced. PerlGen utilizes a four step process to create new programs. First, a MySQL database schema is parsed to produce a configuration file. Second, the configuration file is manually edited using a standard text editor to define behaviors for data elements and control code in the resulting output code. Third, the target program is generated from the configuration file. In many cases, this program can be used without further modification. If additional logic is required, a fourth step is used to modify the generated program and produce the final code. Depending on the complexity required in the target program, it can take from 30 minutes to several hours to build a new program. PerlGen will be demonstrated as part of the presentation. PerlGen is accompanied by a 183 page reference manual, and a 237 page API reference manual.