【问题标题】:Checking for missed empty lines in POD检查 POD 中丢失的空行
【发布时间】:2012-11-19 20:13:45
【问题描述】:

我使用 Dist::Zilla 和一堆插件来检查我的 pod,包括语法、链接、覆盖率等。我一直重复的一个非常烦人的 POD 错误是忘记在 =headX 之后添加额外的行;例如,我刚刚创建了一个带有 pod 的模块,如下所示:

=head1 METHODS

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

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

有没有什么好的自动化方法来检查我是否忘记在=headX(或其他任何内容)和下一段之间放置空格?

【问题讨论】:

  • 问题是这不是一个错误,而是一个特性。 Pod 假设没有空格的行实际上是上面行的延续,所以忘记空格意味着你真的只有一个很长的标题。 podchecker 没有捕捉到它,而且我还没有看到任何可以捕捉到它的工具。是的,这很烦人,因为我做同样的事情,但这并不是一个错误。
  • 是的,我明白了。我只是想知道是否有人因为写警告生成器或其他东西而烦恼。

标签: perl dist-zilla perl-pod


【解决方案1】:

滚动一些 perl 代码。粗鲁,但它有效。我把 main() 写给你。

sub do_pod_check
{
    我的 (
        $路径,
         ) = @_;

    我的 $ 麻烦 = 0;
    打开(我的 $handle,$path)或
        die "无法打开文件:$path: $!\n";

    而(我的 $line =  )
    {
        如果 ( $line =~ /^=\w+/ )
        {
            我的 $line2 = ;
            如果 ( $line2 && $line2 =~ /\S/ )
            {
                $line2 =~ s/^\s++//;
                $line =~ s/\s+$//; #superchomp 行
                $line2 =~ s/\s+$//;
                print "$path\[$.]: 可疑 POD: /",
                                substr($line,0,30), "/",
                                substr($line2,0,30), "/",
                                "\n";
                $麻烦++;
            }
        }
    }
    返回$麻烦;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多