2012-12-01 57 views
1

我使用Dist :: Zilla和一些插件来检查我的pod,包括语法,链接,覆盖范围等。我一直在重复的一个令人讨厌的POD错误是忘记添加一个额外的行后=headX;例如,我刚刚创建了一个模块,豆荚,看起来像下面这样:检查POD中缺少的空行

=head1 METHODS 

=head2 C<wm_graph> 
There are three required arguments: ... 
If the first arg is ... 

当然,我去看看CPAN页面,实现我搞砸了,因为整个段落是HEAD2格式:

Messed up pod

有什么好看的,自动化的方式来检查,我没有忘记把一个=headX(或其他东西)和下段之间的空间?

+1

问题是这不是错误,而是_feature_。 Pod认为没有空白的线条实际上是上面线条的延续,所以忘记空间意味着你真的只有一个很长的标题。 'podchecker'没有抓住它,我还没有看到任何工具。是的,这很烦人,因为我做同样的事情,但这不是一个真正的错误。 –

+1

是的,我明白了。我只是想知道是否有人生气够写警告发生器或什么的。 –

回答

1

滚动一些Perl代码。原油,但它的作品。我留下写main()给你。

sub do_pod_check 
{ 
    my (
     $path, 
     ) = @_; 

    my $troubles = 0; 
    open(my $handle, $path) or 
     die "Can not open file: $path: $!\n"; 

    while (my $line = <$handle>) 
    { 
     if ($line =~ /^=\w+/) 
     { 
      my $line2 = <$handle>; 
      if ($line2 && $line2 =~ /\S/) 
      { 
       $line2 =~ s/^\s+//; 
       $line =~ s/\s+$//;  #superchomp lines 
       $line2 =~ s/\s+$//; 
       print "$path\[$.]: suspect POD: /", 
           substr($line,0,30), "/", 
           substr($line2,0,30), "/", 
           "\n"; 
       $troubles++; 
      } 
     } 
    } 
    return $troubles; 
}