From: Brett R. <bre...@ma...> - 2003-09-22 04:41:53
|
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 |