Subject: | Circular require causes explosion |
As reported by mst as a Log4perl github issue, there's a sub module load order bug in Log4perl which causes an explosion if you run
perl -e 'use Log::Log4perl::Appender;'
Can't locate object method "new" via package "Log::Log4perl::Appender" at /home/matthewt/perl5/lib/perl5/Log/Log4perl/Logger.pm line 33.
Compilation failed in require at /home/matthewt/perl5/lib/perl5/Log/Log4perl/Config.pm line 8.
BEGIN failed--compilation aborted at /home/matthewt/perl5/lib/perl5/Log/Log4perl/Config.pm line 8.
References:
https://github.com/mschilli/log4perl/issues/59
and
http://stackoverflow.com/questions/31319263/is-it-possible-to-fatpack-script-using-loglog4perl-using-appfatpacker
I thin what needs to happen is that we need to get rid of the require loops, maybe have one Namespace.pm module that manages all the loggers and appenders for the entire log4perl universe (bonus points if we can maintain several universes) loads everything and have every other sub module require simply Namespace.pm.
Bas B. has started working on it.