NAME
Apache::StatINC - Reload %INC files when updated on disk
SYNOPSIS
#httpd.conf or some such
#can be any Perl*Handler
PerlInitHandler Apache::StatINC
DESCRIPTION
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 PERL5LIB 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
OPTIONS
- 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 Apache::Symbol undef_functions method to avoid these mandatory warnings:PerlSetVar UndefOnReload On
SEE ALSO
mod_perl(3)
AUTHOR
Doug MacEachern