Apache::RegistryLoaderUser Contributed Perl DocumentApache::RegistryLoader(3p)



NAME
       Apache::RegistryLoader - Compile Apache::Registry scripts at server
       startup

SYNOPSIS
        #in PerlScript

        use Apache::RegistryLoader ();

        my $r = Apache::RegistryLoader->new;

        $r->handler($uri, $filename);

        $r->handler($uri, $filename, $virtual_hostname);

DESCRIPTION
       This modules allows compilation of Apache::Registry scripts at server
       startup.  The script's handler routine is compiled by the parent
       server, of which children get a copy.  The Apache::RegistryLoader
       "handler" method takes arguments of "uri" and the "filename".  URI to
       filename 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 uri relative to ServerRoot.  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
       perl-scripts/ directory relative to ServerRoot.  The example code
       assumes the Location URI "/perl" is an Alias to this directory.

        {
            use Cwd ();
            use Apache::RegistryLoader ();
            use DirHandle ();
            use strict;

            my $dir = Apache->server_root_relative("perl-scripts/");

            my $rl = Apache::RegistryLoader->new(trans => sub {
                my $uri = shift;
                $uri =~ s:^/perl/:/perl-scripts/:;
                return Apache->server_root_relative($uri);
            });

            my $dh = DirHandle->new($dir) or die $!;

            for my $file ($dh->read) {
                next unless $file =~ /\.pl$/;
                $rl->handler("/perl/$file");
            }
        }

AUTHORS
       Doug MacEachern

       Stas Bekman (Rewrote the handler() to report and handle all the
       possible erroneous conditions)

SEE ALSO
       Apache::Registry(3), Apache(3), mod_perl(3)



perl v5.12.2                      2000-03-04        Apache::RegistryLoader(3p)
