stas 2003/06/02 17:20:44 Modified: src/docs/2.0/api/Apache Reload.pod Log: document the new ReloadConstantRedefineWarnings option Revision Changes Path 1.3 +26 -1 modperl-docs/src/docs/2.0/api/Apache/Reload.pod Index: Reload.pod =================================================================== RCS file: /home/cvs/modperl-docs/src/docs/2.0/api/Apache/Reload.pod,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Reload.pod 17 Feb 2003 09:43:21 -0000 1.2 +++ Reload.pod 3 Jun 2003 00:20:44 -0000 1.3 @@ -19,7 +19,8 @@ PerlSetVar ReloadAll Off PerlSetVar ReloadModules "ModPerl::* Apache::*" #PerlSetVar ReloadDebug On - + #PerlSetVar ReloadConstantRedefineWarnings Off + # Reload a single module from within itself: package My::Apache::Module; use Apache::Reload; @@ -185,6 +186,30 @@ reloaded, are actually getting reloaded, turn the debug mode on: PerlSetVar ReloadDebug On + +=head1 Silencing 'Constant subroutine ... redefined at' Warnings + +If a module defines constants, e.g.: + + use constant PI => 3.14; + +and gets re-loaded, Perl issues a mandatory warnings which can't be +silenced by conventional means (since Perl 5.8.0). This is because +constants are inlined at compile time, so if there are other modules +that are using constants from this module, but weren't reloaded they +will see different values. Hence the warning is mandatory. However +chances are that most of the time you won't modify the constant +subroutine and you don't want I<error_log> to be cluttered with +(hopefully) irrelevant warnings. In such cases, if you haven't +modified the constant subroutine, or you know what you are doing, you +can tell C<Apache::Reload> to shut those for you (it overrides +C<$SIG{__WARN__}> to accomplish that): + + PerlSetVar ReloadConstantRedefineWarnings Off + +For the reasons explained above this option is turned on by default. + +since: mod_perl 1.99_10 =head1 Problems With Reloading Modules Which Do Not Declare Their Package Name
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]