Foreword

There is still a vibrant ecology of web development technologies competeting for developer attention as I write this. Nearly every language present in the computing landscape has been bent to dynamicly generate HTML.

Java seems to be winning the hearts and minds of more and more developers, for all types of projects, not just web development. Microsoft has cursed us with ASP, Visual Basic brought to the web. The Apache web-server publishes a C/C++ API, and internaly supports TCL, Python and Perl as direct extenstions to itself. Lisp, Scheme, and even COBOL have web server plugins of one sort or another.

There is even the old standby: CGI, the Common Gateway Interface. CGI allows any programming language capable of accessing environment variables, reading input from stdin, and writing output to stdout to enter the dynamic web programming game.

Within these languages there are numerous design patterns, frameworks and architectures to choose from. Some are simpler and easier to get started with, while some are larger and more suited towards large, multi-tier systems.

Perl has been, and continues to be a popular choice for web developers. Some reasons for its popularity are probably due to its ease of use, its strong support for text processing, and its standard library of modules. CPAN http://www.cpan.org/, the Comprehensive Perl Archive Network, has an absolute abundance of well designed, and tested modules and objects written by authors from all over the globe.

In fact, if you browse through CPAN you will find that there are several packages that support Perl embedded in HTML, CGI support modules, and several web application development frameworks.

It is in this context in which we embarked to create Pas. Yet another web development system for Perl. This manual attempts to shine light on the issues we faced that caused us to start this project, and the features and design that web beleive sets Pas apart from other web development technologies, not just the ones supported by Perl.

Preface

Pas is effectivly a colleciton of objects and modules that create an applicaiton server environment within the Apache web-server. Developers will typicly use Pas to create dynamic, data driven websites, though Pas is not limited to this role. Taking advantage of Apace as a server architecture, Pas adds an object model and a basic request handler that provides a rich environment and archictecture for developers to create complex applicaitons within.