如何阻止pod2html将“= head2 open()foo”视为函数定义?

时间:2009-04-04 20:20:50

标签: perl pod

我有一些看起来像

的POD
=head2 C<close() on unopened filehandle %s>

=over

=item C<Yer tryna close() %s what ain't been opened yet>

=back

pod2html命令将其变为

<h2><a name="close____on_unopened_filehandle__s"><a href="#item_close"><code>close () on unopened filehandle %s</code></a></a></h2>
<dl>
<dt><strong><a name="item_close"><code>Yer tryna close() %s what ain't been opened yet</code></a></strong>

</dl>

问题是<a href="#item_close"></a>。我假设这样做是有帮助的(在=item func()是函数定义的开始的常见情况下),但在我的情况下它是不合适的(它是一条警告消息)。

我已经尝试过(但没有成功)以下内容使pod2html看不到=item open()作为函数定义:

=head2 C<closeZ<>() on unopened filehandle %s>

=head2 C<closeE<40>) on unopened filehandle %s>

=head2 C<closeE<0x28>) on unopened filehandle %s>

最后两个不打印“(”。我是否错误地使用了E&lt;&gt;?这是pod2html中的错误(我在OS X上使用Perl 5.8.8)?

基于思想布莱恩的回答引发了我尝试了另一个实验:

=head2 C<closeE<60>) on unopened filehandle %s>

哪个应该导致<code>close<) on unopened filehandle %s</code>,但它产生了<code>close) on unopened filehandle %s</code>。所以看起来pod2html不喜欢数字实体。

2 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的pod2html和Pod :: Html(或任何你的pod2html加载)?我在Mac上的那个是Pod :: Html 1.0504,并且总是会尝试在= item中看到的文本的第一个实例上建立链接。请记住,您可以随时查看源代码,了解它为什么会这样做:)

而且,我会避免使用C&lt;&gt;在标题中。让处理器弄清楚如何显示它们。

如果您想要嵌套的内部序列,可以添加更多尖括号以便于识别:

C<< closeE<40> >>

尽管如此,我建议您使用perldiag的格式,它与项目中的open paren没有任何特殊之处。如果您不喜欢pod2html,请自己编写; Pod :: Simple非常容易。

答案 1 :(得分:0)

看起来Pod :: Html不喜欢C<>内的数字实体,即使perldoc没有问题。如果我关闭C<>

=head2 closeE<40>) on unopened filehandle %s

它工作正常(并阻止pod2html创建虚假链接)。所以答案似乎是在这里不使用C<>