Listing 1. A bare-bones mason.pl
package HTML::Mason;
# Bring in Mason objects
use HTML::Mason;
# Always "use strict" in mod_perl
use strict;
# Create a Mason parser object
my $parser = new HTML::Mason::Parser;
# Create a Mason interpreter object, pointing to<\n>
# the component and data directories
my $interp = new HTML::Mason::Interp
(parser => $parser,
comp_root => '/usr/local/apache/mason',
data_dir => '/usr/local/apache/masondata/');
# Create an Apache handler
my $ah = new HTML::Mason::ApacheHandler (interp => $interp);
# Make sure that files are written as user
# "nobody"
chown ( [getpwnam('nobody')]->[2],
[getgrnam('nobody')]->[2], $interp->files_written );
# Create a basic "handler" subroutine
sub handler
{
# Get the Apache request object
my ($r) = @_;
# Handle the request
$ah->handle_request($r);
}
1;