O'Reilly logo

Web, Graphics & Perl/Tk Programming by Jon Orwant

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 6. Creating mod_perl Applications

Mike Fletcher

Because mod_perl is, frankly, scarier than a typical Apache module.

Jon Udell Byte, March 1998

While it may be scarier than most Apache modules, mod_perl (http://perl.apache.org) is also one of the most powerful additions available. In mod_perl, Doug MacEachern (author of mod_perl) and Lincoln Stein (of CGI.pm fame) presented an introduction to mod_perl. This article builds on their foundation and demonstrates a full-fledged mod_perl application that lets users provide feedback on web documentation. I’ll also describe some of the performance concerns and how your Apache configuration should be modified to make the most of mod_perl.

So, What Is This mod_perl Thing, Anyhow?

Most people are familiar with CGI scripts written in Perl that add dynamic content generation to a web server. In addition to CGI, most web servers provide some sort of interface that allows code to be run inside the server, such as Microsoft’s ISAPI.

Apache lets you create a chunk of code, called a handler, that is invoked when the server fulfills a browser’s request. That might happen when a URL is translated into a local pathname, or when a child process terminates. mod_perl embeds a Perl interpreter within each Apache httpd process, giving you the ability to write handlers in Perl instead of C.

Aside from exposing the Apache module API, mod_perl also provides other benefits, such as running existing CGI scripts inside the persistent interpreter, and letting ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required