lib::Apache::RegUissetrryCLoonatdreirb(u3t)ed

lib::Apache::RegUissetrryCLoonatdreirb(u3t)ed

Apache::Registry Home Page Subroutines Index Apache::Resource


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

SSYYNNOOPPSSIISS
        #in PerlScript

        use Apache::RegistryLoader ();

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

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

DDEESSCCRRIIPPTTIIOONN
       This modules allows compilation of AAppaacchhee::::RReeggiissttrryy
       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 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->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");
            }
        }

AAUUTTHHOORR
       Doug MacEachern

SSEEEE AALLSSOO
       Apache::Registry(3), Apache(3), mod_perl(3)

Apache::Registry Home Page Subroutines Index Apache::Resource