Reputation: 315
I am new to Perl and I am trying to generate a coverage report for a Perl script I had. I followed the steps mentioned here to install Devel-Cover https://code.activestate.com/ppm/Devel-Cover/ and ran
perl -MDevel::Cover script
I get some coverage info and that message
Pod coverage is unavailable. Please install Pod::Coverage from CPAN.
Then running command cover
to generate the report I get cover: Command not found.
Tring to run cpan install Pod::Coverage
as stated by the output but it fails. I am not sure what I am missing here.
I tried using Devel::Coverage too using
perl -d:Coverage script
But I got that output
Can't locate Devel/Coverage.pm in @INC (you may need to install the Devel::Coverage module) (@INC contains: /spiratech/tools/perllib /home/mmaher/.cache/activestate/02540130/lib/perl5/site_perl/5.32.0/x86_64-linux /home/mmaher/.cache/activestate/02540130/lib/perl5/site_perl/5.32.0 /home/mmaher/.cache/activestate/02540130/lib/perl5/5.32.0/x86_64-linux /home/mmaher/.cache/activestate/02540130/lib/perl5/5.32.0).
BEGIN failed--compilation aborted.
%!s(<nil>)
and I couldn't find any instructions on how to install it. I am using Perl v5.32.0
Upvotes: 1
Views: 686
Reputation: 132905
Zeroth, ActiveState's PPM is old stuff. They have a new State Tool to handle all of that. Note that this is for using their Perl packages. If you aren't using ActiveState's perl, don't use their instructions.
First, you only need Pod::Coverage if you want to check that all of your public subroutines are documented. It's an optional feature.
Second, there's no install
command to cpan
. Just list the modules that you want or use the command line options. With no options, the -i
(for install) is assumed:
$ cpan Pod::Coverage
$ cpan -i Pod::Coverage
Third, the -d
switch for debugging assumes that you are loading a module under the Devel
namespace. That's why -d:Coverage
looks for Devel::Coverage
, which it then cannot find.
To load any module that you like, you can use the -M
switch. This takes the entire module name:
$ perl -MPod::Coverage
Lastly, once you install Devel::Cover
, look where you installed cover
and ensure that that directory is in your PATH
.
Upvotes: 4