First, you should skip everything in pod-coverage.t if the user doesn't have Test::Pod::Coverage. Plain and simple, that's primarily for you - no one other than CPAN module contributors is likely to have Test::Pod::Coverage, which of CPAN consumers, is a small percentage. i.e.
use strict;
use warnings;
use Test::More;
eval { use Test::Pod::Coverage qw( no_plan ); };
if( @$ ){
plan skip_all
=> 'Test::Pod::Coverage required for testing POD coverage';
}
# ...
Second, everything needs to be documented when testing pod coverage. I forget the details, but I think 95% pod coverage (all public methods, but no private methods) still resulted in a failure last time I ran a pod-coverage.t file on a suite of my recent modules. (And I just checked the docs, no mention of honoring prefixing private methods with underbars.) So I POD'd everything (even though I skip_all'd in my .t file). Every module had everything documented:
=head1 NAME
=head1 SYNOPSIS
=head1 DESCRIPTION
=head2 Methods
=over20
=item new()
=item isValid()
=item getFoo()
=item setFoo()
=item getBar()
=item setBar()
=item _validateBaz
=item _validateFred
=back
=head1 AUTHOR
=head1 BUGS
=head1 ACKNOWLEDGEMENTS
=head1 SEE ALSO
=cut
--chargrill
s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; =
qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)