Perl - 嵌入式文档


您可以将 Pod(纯旧文本)文档嵌入到 Perl 模块和脚本中。以下是在 Perl 代码中使用嵌入式文档的规则 -

以空行开始文档,在开头使用= head1命令,并以 = cut结束

Perl 将忽略您在代码中输入的 Pod 文本。以下是在 Perl 代码中使用嵌入式文档的简单示例 -

#!/usr/bin/perl

print "Hello, World\n";

=head1 Hello, World Example
This example demonstrate very basic syntax of Perl.
=cut

print "Hello, Universe\n";

执行上述代码时,会产生以下结果 -

Hello, World
Hello, Universe

如果您要将 Pod 放在文件末尾,并且使用 __END__ 或 __DATA__ 剪切标记,请确保在第一个 Pod 命令之前放置一个空行,如下所示,否则之前没有空行= head1,许多翻译者不会将 = head1识别为启动 Pod 块。

#!/usr/bin/perl

print "Hello, World\n";

while(<DATA>) {
  print $_;
}

__END__

=head1 Hello, World Example
This example demonstrate very basic syntax of Perl.
print "Hello, Universe\n";

执行上述代码时,会产生以下结果 -

Hello, World

=head1 Hello, World Example
This example demonstrate very basic syntax of Perl.
print "Hello, Universe\n";

让我们在不读取数据部分的情况下再举一个相同代码的例子 -

#!/usr/bin/perl

打印“你好,世界\n”;

__结尾__

=head1 你好,世界示例
这个例子演示了非常基本的 Perl 语法。
打印“你好,宇宙\n”;

执行上述代码时,会产生以下结果 -

Hello, World

什么是POD?

Pod 是一种简单易用的标记语言,用于编写 Perl、Perl 程序和 Perl 模块的文档。有多种翻译器可用于将 Pod 转换为各种格式,例如纯文本、HTML、手册页等。Pod 标记由三种基本类型的段落组成 -

  • 普通段落- 您可以在普通段落中使用格式化代码,用于粗体、斜体、代码样式、超链接等。

  • 逐字段落- 逐字段落通常用于呈现代码块或其他文本,不需要任何特殊的解析或格式化,并且不应被换行。

  • 命令段落- 命令段落用于对整个文本块进行特殊处理,通常作为标题或列表的一部分。所有命令段落均以 = 开头,后跟标识符,最后是命令可以随意使用的任意文本。目前公认的命令是 -

=pod
=head1 Heading Text
=head2 Heading Text
=head3 Heading Text
=head4 Heading Text
=over indentlevel
=item stuff
=back
=begin format
=end format
=for format text...
=encoding type
=cut

POD 示例

考虑以下 POD -

=head1 SYNOPSIS
Copyright 2005 [TUTORIALSOPOINT].
=cut

您可以使用Linux 上提供的pod2html实用程序将上述 POD 转换为 HTML,因此它将产生以下结果 -

版权所有 2005 [TUTORIALSOPOINT]。

接下来,考虑以下示例 -

=head2 An Example List

=over 4
=item * This is a bulleted list.
=item * Here's another item.
=back
=begin html
<p>
Here's some embedded HTML.  In this block I can
include images, apply <span style="color: green">
styles</span>, or do anything else I can do with
HTML.  pod parsers that aren't outputting HTML will
completely ignore it.
</p>

=end html

当您使用 pod2html 将上述 POD 转换为 HTML 时,它将产生以下结果 -

An Example List
   This is a bulleted list.
   Here's another item.
Here's some embedded HTML. In this block I can include images, apply 
styles, or do anything else I can do with HTML. pod parsers that aren't 
outputting HTML will completely ignore it.