Perl 检查吊舱中有无遗漏的空行
我使用Dist::Zilla和一堆插件来检查我的pod,包括语法、链接、覆盖范围等。我不断重复的一个非常恼人的pod错误是忘记在Perl 检查吊舱中有无遗漏的空行,perl,dist-zilla,perl-pod,Perl,Dist Zilla,Perl Pod,我使用Dist::Zilla和一堆插件来检查我的pod,包括语法、链接、覆盖范围等。我不断重复的一个非常恼人的pod错误是忘记在=headX之后添加额外的一行;例如,我刚刚创建了一个带有pod的模块,如下所示: =head1 METHODS =head2 C<wm_graph> There are three required arguments: ... If the first arg is ... =head1方法 =总目2 C 有三个必需参数:。。。 如果第一个参数是。。
=headX
之后添加额外的一行;例如,我刚刚创建了一个带有pod的模块,如下所示:
=head1 METHODS
=head2 C<wm_graph>
There are three required arguments: ...
If the first arg is ...
=head1方法
=总目2 C
有三个必需参数:。。。
如果第一个参数是。。。
当然,我去看了CPAN页面,发现我搞砸了,因为整个段落都是head2格式的:
有没有什么好的、自动的方法来检查我没有忘记在
=headX
(或其他任何东西)和下一段之间留出空格?滚动一些perl代码。原油,但它的工作。我把主要内容留给你写
分舱检查
{
我的(
$path,
) = @_;
我的$troubles=0;
打开(我的$handle,$path)或
“无法打开文件:$!\n”;
while(我的$line=)
{
如果($line=~/^=\w+/)
{
我的$line2=;
如果($line2&&$line2=~/\S/)
{
$line2=~s/^\s+/;
$line=~s/\s+$/;#超级homp行
$line2=~s/\s+$/;
打印“$path\[$。]”:可疑POD:/“,
子项($line,0,30),“/”,
子项($2,0,30行),“/”,
“\n”;
$problems++;
}
}
}
返回$麻烦;
} 滚动一些perl代码。原油,但它的工作。我把主要内容留给你写 分舱检查 { 我的( $path, ) = @_; 我的$troubles=0; 打开(我的$handle,$path)或 “无法打开文件:$!\n”; while(我的$line=) { 如果($line=~/^=\w+/) { 我的$line2=; 如果($line2&&$line2=~/\S/) { $line2=~s/^\s+/; $line=~s/\s+$/;#超级homp行 $line2=~s/\s+$/; 打印“$path\[$。]”:可疑POD:/“, 子项($line,0,30),“/”, 子项($2,0,30行),“/”, “\n”; $problems++; } } } 返回$麻烦;
}问题是这不是一个错误,而是一个特性。Pod假设没有空格的行实际上是上面行的延续,所以忘记空格意味着你真的有一个很长的标题
podchecker
无法捕捉到它,而且我还没有看到任何能够捕捉到它的工具。是的,这很烦人,因为我做了同样的事情,但这不是一个真正的错误。是的,我理解。我只是想知道是否有人已经厌烦到编写警告生成器之类的东西了。问题是这不是一个错误,而是一个特性。Pod假设没有空格的行实际上是上面行的延续,所以忘记空格意味着你真的有一个很长的标题podchecker
无法捕捉到它,而且我还没有看到任何能够捕捉到它的工具。是的,这很烦人,因为我做了同样的事情,但这不是一个真正的错误。是的,我理解。我只是想知道是否有人已经被惹恼了,写了一个警告生成器或什么的。
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;
}