panic% perl Makefile.PL PERL_METHOD_HANDLERS=1 [ ... ]
or:
panic% perl Makefile.PL EVERYTHING=1 [ ... ]
it's possible to write method handlers in addition to function handlers. This is useful when you want to write code that takes advantage of inheritance. To make the handler act as a method under mod_perl, use the $$ function prototype in the handler definition. When mod_perl sees that the handler function is prototyped with $$, it'll pass two arguments to it: the calling object or a class, depending on how it was called, and the Apache request object. So you can write the handler as:
sub handler ($$) {
my($self, $r) = @_;
# ...
}
The configuration is almost as usual. Just use the class name if the default method name handler( ) is used:
PerlHandler Book::SubClass
However, if you choose to use a different method name, the object-oriented notation should be used:
PerlHandler Book::SubClass->my_handler
The my_handler( ) method will then be called as a class (static) method.
Also, you can use objects created at startup to call methods. For example:
<Perl>
use Book::SubClass;
$Book::Global::object = Book::SubClass->new( );
</Perl>
...
PerlHandler $Book::Global::object->my_handler
In this example, the my_handler( ) method will be called as an instance method on the global object $Book::Global.
 
Continue to: