Subject: | Loading Perl::Critic fails in PodSpelling |
Loading of the Perl::Critic fails. When trying the example in the documentation /1/, the loading (use Perl::Critic) seems to result some kind of loop that exist with 'out of memory'.
This behavior was observed with Perl::Critic version 1.119 with ActiveState Perl 5.16.3 /2/ on Windows 7 with latest patches.
It seems that commenting out the line 'use vars qw{ $VERSION @ISA @EXPORT_OK %EXPORT_TAGS };' in File::ShareDir 1.03 will make this work. Even though this was in another module, there seems to be Exporter changes in Perl::Critic 1.119. This used to work at least with Perl::Critic 1.117. I am not sure if I had 1.118 installed. I did not understand the problem so I am not completely sure if this is a bug or an issue in Perl::Critic itself or in my environment.
The include and call path for failure line was:
1. use Perl::Critic::Config;
2. use Perl::Critic::PolicyFactory;
3. @site_policy_names = plugins(); #Exported by Module::Pluggable # v4.8
4. Module::Pluggable::Object.pm
5. my $res = eval { $self->_require($plugin) };
6. package Perl::Critic::Policy::Documentation::PodSpelling;
7. use Text::ParseWords qw< >; # v3.29
8. use Pod::Wordlist; # Pod 2.4.2
9. File::ShareDir; # v1.03
10. use vars qw{ $VERSION @ISA @EXPORT_OK %EXPORT_TAGS };
/1/ Example that fails
use Perl::Critic; # <-- Does not load
my $file = shift;
print "file ($file)";
my $critic = Perl::Critic->new();
my @violations = $critic->critique($file);
print @violations;
/2/
This is perl 5, version 16, subversion 3 (v5.16.3) built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2012, Larry Wall
Binary build 1603 [296746] provided by ActiveState http://www.ActiveState.com
Built Mar 13 2013 11:29:21
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.