lib::Apache::StaUtsIeNrC(C3o)ntributed
NNAAMMEE
Apache::StatINC - Reload %INC files when updated on disk
SSYYNNOOPPSSIISS
#httpd.conf or some such
#can be any Perl*Handler
PerlInitHandler Apache::StatINC
DDEESSCCRRIIPPTTIIOONN
When Perl pulls a file via require, it stores the filename
in the global hash %INC. The next time Perl tries to
require the same file, it sees the file in %INC and does
not reload from disk. This module's handler iterates over
%INC and reloads the file if it has changed on disk.
Note that StatINC operates on the current context of @INC.
Which means, when called as a Perl*Handler it will not see
@INC paths added or removed by Apache::Registry scripts,
as the value of @INC is saved on server startup and
restored to that value after each request. In other
words, if you want StatINC to work with modules that live
in custom @INC paths, you should modify @INC when the
server is started. Besides, 'use lib' in startup scripts,
you can also set the PPEERRLL55LLIIBB variable in the httpd's
environment to include any non-standard 'lib' directories
that you choose. For example, you might use a script
called 'start_httpd' to start apache, and include a line
like this:
PERL5LIB=/usr/local/foo/myperllibs; export PERL5LIB
OOPPTTIIOONNSS
UndefOnReload
Normally, StatINC will turn of warnings to avoid
"Subroutine redefined" warnings when it reloads a
file. However, this does not disable the Perl
mandatory warning when re-defining constant
subroutines (see perldoc perlsub). With this option
On, StatINC will invoke the AAppaacchhee::::SSyymmbbooll
undef_functions method to avoid these mandatory
warnings:
PerlSetVar UndefOnReload On
SSEEEE AALLSSOO
mod_perl(3)
AAUUTTHHOORR
Doug MacEachern