NAME
Apache::RegistryLoader - Compile Apache::Registry scripts at server
startupSYNOPSIS
#in PerlScript
use Apache::RegistryLoader ();
my $r = Apache::RegistryLoader->new;
$r->handler($uri, $filename);
$r->handler($uri, $filename, $virtualhostname);
DESCRIPTION
This modules allows compilation of AAppaacchhee::::RReeggiissttrryy scripts at server startup. The script's handler routine is compiled by the parentserver, of which children get a copy. The AAppaacchhee::::RReeggiissttrryyLLooaaddeerr "han-
dler" method takes arguments of "uri" and the "filename". URI to file-
name translation normally doesn't happen until HTTP request time, so we're forced to roll our own translation. If filename is omitted and a "trans" routine was not defined, the loader will try using the uurrii relative to SSeerrvveerrRRoooott. Example:#in httpd.conf
ServerRoot /opt/www/apache Alias /perl/ /opt/www/apache/perl#in PerlScript
use Apache::RegistryLoader ();
#/opt/www/apache/perl/test.pl
#is the script loaded from disk here:
Apache::RegistryLoader->new->handler("/perl/test.pl");
To make the loader smarter about the uri->filename translation, you may
provide the "new" method with a "trans" function to translate the uri to filename.The following example will pre-load all files ending with ".pl" in the
ppeerrll-ssccrriippttss// directory relative to SSeerrvveerrRRoooott. The example code
assumes the Location URI "/perl" is an AAlliiaass to this directory. { use Cwd ();use Apache::RegistryLoader ();
use DirHandle (); use strict;my $dir = Apache->serverrootrelative("perl-scripts/");
my $rl = Apache::RegistryLoader->new(trans => sub {
my $uri = shift;
$uri =~ s:^/perl/:/perl-scripts/:;
return Apache->serverrootrelative($uri);
});my $dh = DirHandle->new($dir) or die $!;
for my $file ($dh->read) {
next unless $file =~ /\.pl$/;
$rl->handler("/perl/$file");
} } AUTHORS Doug MacEachernStas Bekman (Rewrote the handler() to report and handle all the possi-
ble erroneous conditions)SEE ALSO
Apache::Registry(3), Apache(3), modperl(3)perl v5.8.6 2000-03-30 Apache::RegistryLoader(3)