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






Short Cuts



The Apache Software Foundation



Sister Sites



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

  • StatINC_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 StatINC_UndefOnReload On
  • StatINC_Debug

    You can make StatINC tell when it reloads a module by setting this option to on.

     PerlSetVar StatINC_Debug 1

    The only used debug level is currently 1.



TOP

SEE ALSO

mod_perl



TOP

Maintainers

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



TOP

Authors

  • Doug MacEachern
  • Ask Bjoern Hansen

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






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

Last modified Sat Feb 15 17:38:38 2014

Changes file

Have comments? Please send them to the modperl users mailing list.

Use of the Camel for Perl is a trademark of O'Reilly & Associates, and is used by permission.



AltStyle によって変換されたページ (->オリジナル) /