The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Apache::RegistryFilter - run Perl scripts in an Apache::Filter chain

SYNOPSIS

#in httpd.conf

PerlModule Apache::RegistryFilter

# Run the output of scripts through Apache::SSI
<Files ~ "\.pl$">
 PerlSetVar Filter on
 SetHandler perl-script
 PerlHandler Apache::RegistryFilter Apache::SSI
</Files>

# Generate some Perl code using templates, then execute it
<Files ~ "\.tmpl$">
 PerlSetVar Filter on
 SetHandler perl-script
 PerlHandler YourModule::GenCode Apache::RegistryFilter
</Files>

DESCRIPTION

This module is a subclass of Apache::RegistryNG, and contains all of its functionality. The only difference between the two is that this module can be used in conjunction with the Apache::Filter module, whereas Apache::RegistryNG cannot.

For information on how to set up filters, please see the codumentation for Apache::Filter.

INCOMPATIBILITIES

At this point the only changes you might have to make to your Registry scripts are quite minor and obscure. That is, unless I haven't thought of something. Please let me know if any other changes are needed.

  • Don't call send_fd()

    If you call Apache's $r->send_fd($filehandle) method, the output will be sent directly to the browser instead of filtered through the filter chain. This is okay if your script is the last filter in the chain, but clearly it won't work otherwise.

CAVEATS

This is a subclass of Apache::RegistryNG, not Apache::Registry (which is not easily subclassible). Apache::RegistryNG is supposed to be functionally equivalent to Apache::Registry, but it's a little less well-tested.

SEE ALSO

perl(1), mod_perl(3), Apache::Filter(3)

AUTHOR

Ken Williams <ken@forum.swarthmore.edu>