Like Share Discussion Bookmark Smile

J.J. Huang   2021-06-17   Perl   瀏覽次數:

Perl - 第二十七章 | Perl 嵌入式文件

您可以在 Perl 模塊和腳本中嵌入 Pod(純舊文本)文件。

以下是在 Perl 程式碼中使用嵌入式文件的規則:

  • 以一個空行開始您的文件,在開頭使用一個 = head1命令,並以一個 = cut結束它。
    Perl 將忽略您在程式碼中輸入的 Pod 文本。

以下是在 Perl 程式碼中使用嵌入式文件的簡單示例:

1
2
3
4
5
6
7
8
9
#!/usr/bin/perl

print "Hello, World\n";

=head1 Hello, World 範例
這是一個 Perl 的簡單範例。
=cut

print "Hello, MoroseDog\n";

執行以上程序,輸出結果如下:

1
2
Hello, World
Hello, MoroseDog

如果您要將 Pod 放在文件末尾,並且使用 __END__ 或 __DATA__ 剪切標記,請確保在第一個 Pod 命令之前放置一個空行,如下所示,不會將 = head1識別為開始一個 Pod 塊。

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl

print "Hello, World\n";

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

__END__

=head1 Hello, World 範例
這是一個 Perl 的簡單範例。
print "Hello, MoroseDog\n";

執行以上程序,輸出結果如下:

1
2
3
4
5
Hello, World

=head1 Hello, World 範例
這是一個 Perl 的簡單範例。
print "Hello, MoroseDog\n";%

再舉一個例子:

1
2
3
4
5
6
7
8
9
#!/usr/bin/perl

print "Hello, World\n";

__END__

=head1 Hello, World 範例
這是一個 Perl 的簡單範例。
print "Hello, MoroseDog\n";

執行以上程序,輸出結果如下:

1
Hello, World

什麼是 POD?

Pod(Plain Old Documentation),是一種簡單而易用的標記型語言(置標語言),它經常用於在perl程序和模塊中的文件書寫。
Pod 的 轉化器可以將 Pod 轉換成很多種格式,例如 text、html、man 等很多。
Pod 標記語言包含三種基本基本類型: 普通、原文 和 命令。

  • 普通段落: 你可以在普通段落中使用格式化程式碼,如黑體,斜體,或程式碼風格,下劃線等。
  • 原文段落: 原文段落,用於程式碼塊或者其他不需要轉換器處理的部分,而且不需要段落重排。
  • 命令段落: 命令段落作用於整個的文件,通常用於標題設置或列表標記。

所有的命令段落(他只有一行的長度)使用 “=” 開始,然後是一個標識符。隨後的文本將被這條命令所影響。現在被廣泛使用的命令包括:

1
2
3
4
5
6
7
8
9
10
11
12
13
=pod (開始文件)
=head1 標題文本
=head2 標題文本
=head3 標題文本
=head4 標題文本
=over 縮進空格數量
=item 前綴
=back (結束列表)
=begin 文件格式
=end 結束文件格式
=for 格式文本
=encoding 編碼類型
=cut (文件結束)

在perl中,可以使用 pod2html .pod >.html 來生成html格式的pod文件。

POD 範例:

1
2
3
4
5
6
=begin html
=encoding utf-8

=head1 MoroseDog教學

=cut

pod2html時會原文拷貝此段代碼。

使用 pod2html 命令執行,將其轉換為 HTML 代碼:

1
$ pod2html test.pod > test.html

在編輯器中打開 test.html:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:_securityagent@osx341.sd.apple.com" />
</head>

<body style="background-color: white">



<ul id="index">
<li><a href="#MoroseDog">MoroseDog教學</a></li>
</ul>



<h1 id="MoroseDog">MoroseDog教學</h1>




</body>

</html>

直接在 POD 文件中寫入 HTML:

1
2
3
4
5
6
7
=begin html
=encoding utf-8

<h1>MoroseDog教學</h1>
<p> morosedog.gitlab.io/ </p>

=end html

使用 pod2html 命令執行,將其轉換為 HTML 代碼:

1
$ pod2html test.pod > test.html

在編輯器中打開 test.html:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:_securityagent@osx341.sd.apple.com" />
</head>

<body style="background-color: white">





<h1>MoroseDog教學</h1>
<p> morosedog.gitlab.io/ </p>


</body>

</html>

註:以上參考了
Tutorialspoint, Perl - Embedded Documentation