Perl - 嵌入式文件



您可以在 Perl 模組和指令碼中嵌入 Pod(Plain Old Text)文件。以下是您在 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";

讓我們再舉一個不讀取 DATA 部分的相同程式碼的示例:

#!/usr/bin/perl

print "Hello, World\n";

__END__

=head1 Hello, World Example
This example demonstrate very basic syntax of Perl.
print "Hello, Universe\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.
廣告