mod_perl logo perl icon
previous page: Apache::RegistryLoader - Compile Apache::Registry scripts at server startuppage up: mod_perl 1.0 APInext page: Apache::test - Facilitates testing of Apache::* modules

Apache::StatINC - Reload %INC files when updated on disk






Practical mod_perl

Practical mod_perl

By Stas Bekman, Eric Cholet
The mod_perl Developer's Cookbook

The mod_perl Developer's Cookbook

By Geoffrey Young, Paul Lindner, Randy Kobes
mod_perl Pocket Reference

mod_perl Pocket Reference

By Andrew Ford
Writing Apache Modules with Perl and C

Writing Apache Modules with Perl and C

By Lincoln Stein, Doug MacEachern
Embedding Perl in HTML with Mason

Embedding Perl in HTML with Mason

By Dave Rolsky, Ken Williams
mod_perl2 User's Guide

mod_perl2 User's Guide

By Stas Bekman, Jim Brandt


Table of Contents

Synopsis

  #httpd.conf or some such
  #can be any Perl*Handler
  PerlInitHandler Apache::StatINC


TOP

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

When you have problems with modules not being reloaded, please refer to the following lines in perlmodlib:

"Always use -w. Try to use strict; (or use strict qw(...);). Remember that you can add no strict qw(...); to individual blocks of code that need less strictness. Always use -w. Always use -w! Follow the guidelines in the perlstyle(1) manual."

Warnings when running under mod_perl is enabled with PerlWarn On in your httpd.conf.

It will most likely help you to find the problem. Really.



TOP

Options



TOP

SEE ALSO

mod_perl



TOP

Maintainers

Maintainer is the person(s) you should contact with updates, corrections and patches.



TOP

Authors

Only the major authors are listed above. For contributors see the Changes file.






TOP
previous page: Apache::RegistryLoader - Compile Apache::Registry scripts at server startuppage up: mod_perl 1.0 APInext page: Apache::test - Facilitates testing of Apache::* modules