Home   |   Contact Us   |   Site Map

 

 

 

  Symbol.pm Perldoc

 


NAME

Apache::Symbol - Things for symbol things


SYNOPSIS

use Apache::Symbol ();

@ISA = qw(Apache::Symbol);


DESCRIPTION

perlsub/Constant Functions says:

If you redefine a subroutine which was eligible for inlining you'll get a mandatory warning. (You can use this warning to tell whether or not a particular subroutine is considered constant.) The warning is considered severe enough not to be optional because previously compiled invocations of the function will still be using the old value of the function.

mandatory warning means there is _no_ way to avoid this warning no matter what tricks you pull in Perl. This is bogus for us mod_perl users when restarting the server with PerlFreshRestart on or when Apache::StatINC pulls in a module that has changed on disk.

You can, however, pull some tricks with XS to avoid this warning, Apache::Symbol::undef does just that.


ARGUMENTS

undef_functions takes two arguments: skip and only_undef_exports.

skip is a regular expression indicating the function names to skip.

Use the only_undef_exports flag to undef only those functions which are listed in @EXPORT, @EXPORT_OK, %EXPORT_TAGS, or @EXPORT_EXTRAS. @EXPORT_EXTRAS is not used by the Exporter, it is only exists to communicate with undef_functions.

As a special case, if none of the EXPORT variables are defined ignore only_undef_exports. This takes care of trivial modules that don't use the Exporter.


ARGUMENTS

undef_functions takes two arguments: skip and only_undef_exports.

skip is a regular expression indicating the function names to skip.

Use the only_undef_exports flag to undef only those functions which are listed in @EXPORT, @EXPORT_OK, %EXPORT_TAGS, or @EXPORT_EXTRAS. @EXPORT_EXTRAS is not used by the Exporter, it is only exists to communicate with undef_functions.

As a special case, if none of the EXPORT variables are defined ignore only_undef_exports. This takes care of trivial modules that don't use the Exporter.


PLAYERS

This module and the undefining of functions is optional, if you wish to have this functionality enabled, there are one or more switches you need to know about.

PerlRestartHandler
Apache::Symbol defines a PerlRestartHandler which can be useful in conjuction with PerlFreshRestart On as it will avoid subroutine redefinition messages. Configure like so:

PerlRestartHandler Apache::Symbol

Apache::Registry
By placing the SYNOPSIS bit in you script, Apache::Registry will undefine subroutines in your script before it is re-compiled to avoid ``subroutine re-defined'' warnings.

Apache::StatINC
See Apache::StatINC's docs.

APACHE_SYMBOL_UNIVERSAL
If this environment variable is true when Symbol.pm is compiled, it will define UNIVERSAL::undef_functions, which means all classes will inherit Apache::Symbol::undef_functions.

Others
Module such as HTML::Embperl and Apache::ePerl who compile and script cache scripts ala Apache::Registry style can use undef_functions with this bit of code:

if($package->can('undef_functions')) { $package->undef_functions; }

Where $package is the name of the package in which the script is being re-compiled.


SEE ALSO

perlsub(1), Devel::Symdump(3)


AUTHOR

Doug MacEachern



 

Browse our Perldoc FAQs:

Perldoc Home

Perldoc Site Map


Previous Topics

Strict.pm Perldoc

Struct.pm Perldoc

Sub.pm Perldoc

subs.pm Perldoc

Subs.pm Perldoc

Subst.pm Perldoc

SubstrHash.pm Perldoc

Switch.pm Perldoc


Next Topics

Symdump.pm Perldoc

Syslog.pm Perldoc

SysV.pm Perldoc

Table.pm Perldoc

Tabs.pm Perldoc

Tagset.pm Perldoc

Tar.pm Perldoc

telnet.pm Perldoc


Website Spotlight

Domain Hosting with the Leader in Innovative and Comprehensive Web Hosting Solutions, Globalnet GNP.

Reliable Domain Hosting

 

Click here to increase your web traffic insantly!


 Copyright © 1999-2005 Globalnet Promotions, LLC.   |   TheServerRoom.org Home    |   Sitemap    |   RSS News Feeds