Problem:
With constants module in perl 5.00503, constants apparently can not be defined with a leading underscore. Log4perl v0.36 -> v0.37 renamed DEBUG constant to _INTERNAL_DEBUG:
~/.../Log> egrep -r 'use constant _' *
Log4perl/Filter/LevelMatch.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Filter/Boolean.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Filter/LevelRange.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Filter/StringMatch.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Config/Watch.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Config/DOMConfigurator.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/JavaMap/TestBuffer.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/JavaMap.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Appender.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Logger.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Config.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Filter.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl.pm:use constant _INTERNAL_DEBUG => 1;
Example:
~> perl -e 'use constant _FOO => 1 ; print "OK\n"; exit 0;'
Can't define "_FOO" as constant (name contains invalid characters or is empty) at -e line 1
BEGIN failed--compilation aborted at -e line 1.
~> perl -e 'use constant FOO => 1 ; print "OK\n"; exit 0;'
OK
~> perl -V
Summary of my perl5 (5.0 patchlevel 5 subversion 3) <snip>
RECOMMEND & PATCH:
Sticking to convention of constants starting with capital letter, and renaming _INTERNAL_DEBUG to INTERNAL_DEBUG:
The _ does stand out.
~> ~/.../Log> egrep -r 'use constant _?' *
Log4perl/Filter/LevelMatch.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Filter/Boolean.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Filter/LevelRange.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Filter/StringMatch.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Config/Watch.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Config/DOMConfigurator.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/JavaMap/TestBuffer.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/JavaMap.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Appender.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Logger.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Config.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl/Level.pm:use constant ALL_INT => 0;
Log4perl/Level.pm:use constant DEBUG_INT => 10000;
Log4perl/Level.pm:use constant INFO_INT => 20000;
Log4perl/Level.pm:use constant WARN_INT => 30000;
Log4perl/Level.pm:use constant ERROR_INT => 40000;
Log4perl/Level.pm:use constant FATAL_INT => 50000;
Log4perl/Level.pm:use constant OFF_INT => (2 ** 31) - 1;
Log4perl/Filter.pm:use constant _INTERNAL_DEBUG => 0;
Log4perl.pm:use constant _INTERNAL_DEBUG => 1;
*** (i wonder, is _INTERNAL_DEBUG meant to be turned on in Log4perl.pm? I suspect not...)
Please continue to support 5.005. :) This looks to be an extrememly useful module however my works development platform is frozen at 5.00503.
Brett
--
--
__________________________________________________________
Sign-up for your own personalized E-mail at Mail.com
http://www.mail.com/?sr=signup
CareerBuilder.com has over 400,000 jobs. Be smarter about your job search
http://corp.mail.com/careers
|