Flashnux

GNU/Linux man pages

Livre :
Expressions régulières,
Syntaxe et mise en oeuvre :

ISBN : 978-2-7460-9712-4
EAN : 9782746097124
(Editions ENI)

GNU/Linux

CentOS 2.1AS

(Slurm)

Apache::RegistryLoader(3pm)


Apache::RegistryLoader

Apache::RegistryLoader

NAME
SYNOPSIS
DESCRIPTION
AUTHORS
SEE ALSO

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)



Apache::RegistryLoader(3pm)