內容

名稱

Pod::Escapes - 用於解析 Pod E<...> 序列

語法

use Pod::Escapes qw(e2char);
...la la la, parsing POD, la la la...
$text = e2char($e_node->label);
unless(defined $text) {
  print "Unknown E sequence \"", $e_node->label, "\"!";
}
...else print/interpolate $text...

說明

此模組提供了解碼 Pod E<...> 序列時有用的功能。假設它只會用於 Pod 解析器和/或格式化程式。

預設情況下,Pod::Escapes 沒有匯出任何符號。但你可以要求匯出任何符號。可以個別要求,例如 use Pod::Escapes qw(symbolname symbolname2...);,或者執行 use Pod::Escapes qw(:ALL); 以取得所有可匯出的符號。

好處

e2char($e_content)

給定一個名稱或數字,它可能出現在 E<name_or_num> 序列中,此函數會傳回它代表的字串。例如,e2char('sol')e2char('47')e2char('0x2F')e2char('057') 都會傳回「/」,因為 E<sol>E<47>E<0x2f>E<057> 都表示「/」。如果名稱沒有已知的值(例如名稱為「qacute」)或語法無效(例如名稱為「1/4」),此函數會傳回未定義。

e2charnum($e_content)

給定一個可能出現在 E<name_or_num> 序列中的名稱或數字,此函數會傳回這個名稱或數字代表的 Unicode 字元編號。例如,e2char('sol')e2char('47')e2char('0x2F')e2char('057') 都會傳回 47,因為 E<sol>E<47>E<0x2f>E<057> 都表示「/」,而其 Unicode 編號為 47。如果名稱沒有已知的值(例如名稱為「qacute」)或語法無效(例如名稱為「1/4」),此函數會傳回 undef。

$Name2character{name}

將名稱(如 E<name>)從「eacute」或「sol」對應到每個名稱代表的字串。請注意,這不包含數字(例如「64」或「x981c」)。在舊版的 Perl(5.7 之前)中,Unicode 值大於 255 的字元會以「?」取代。

$Name2character_number{name}

將名稱(如 E<name>)從「eacute」或「sol」對應到每個名稱代表的 Unicode 值。例如,$Name2character_number{'eacute'} 為 201,而 $Name2character_number{'eacute'} 為 8364。您會取得正確的 Unicode 值,與您使用的 Perl 版本無關,這與 5.7 之前的 Perl 中 %Name2character 的行為不同。

請注意,此雜湊不包含數字(例如「64」或「x981c」)。

$Latin1Code_to_fallback{integer}

對於介於 160 (0x00A0) 到 255 (0x00FF) 之間的數字,此函數會將拉丁文-1 字元的字元代碼(例如小寫 e-acute 的 233)對應到最接近的 US-ASCII 字元(例如「e」)。如果您以您認為只能處理 US-ASCII 字元的格式呈現 POD,您可能會覺得這項功能很有用。

$Latin1Char_to_fallback{character}

與上述相同,但將字元(例如「\xE9」,小寫 e-acute)對應到字元(例如「e」)。

$Code2USASCII{integer}

此函數會將 US-ASCII 代碼(例如 32)對應到對應的字元(例如空格,對於 32)。只有定義 32 到 126 的字元。這是供 e2char($x) 在偵測到它在非 ASCII 平台上執行時使用(在非 ASCII 平台上,chr(32) 無法取得空格,但 $Code2USASCII{32} 可以)。此處的文件僅供您在可能覺得有用的情況下參考。

注意事項

在 5.7 之前的 Perl 版本中,無法傳達值大於 255 的 Unicode 字元(例如 lambda 或 emdash)。此模組在這些早期版本的 Perl 中仍可運作,但在每個此類字元的位置,您會看到「?」. 拉丁文-1 字元(字元 160-255)不受影響。

在 EBCDIC 平台上,e2char($n) 可能不總是等於 chr(e2charnum($n))$Name2character{$name} 也可能不總是等於 chr($Name2character_number{$name}),因為字串以原生格式傳回,而數字則以 Unicode 格式傳回。不過,對於從 v5.8 開始的 Perl,e2char($n) 等於 chr(utf8::unicode_to_native(e2charnum($n)))$Name2character{$name} 也等於 chr(utf8::unicode_to_native($Name2character_number{$name}))

另請參閱

Pod::Browser - 基於 Catalyst 的 pod 網路伺服器。

Pod::Checker - 檢查 pod 文件的語法錯誤。

Pod::Coverage - 檢查模組的說明文件是否全面。

perlpod - pod 格式說明(供使用 pod 撰寫文件的人員使用)。

perlpodspec - pod 格式規格(供處理 pod 格式的人員使用)。

Text::Unidecode - Unicode 文字的 ASCII 轉寫。

儲存庫

https://github.com/neilbowers/Pod-Escapes

版權和免責聲明

版權所有 (c) 2001-2004 Sean M. Burke。保留所有權利。

此函式庫是免費軟體;您可以在與 Perl 相同的條款下重新散布或修改它。

散布此程式是希望它對您有幫助,但沒有任何保證;甚至沒有對商品化或特定用途的適用性的默示保證。

此模組中資料表的部分內容取自 W3C XHTML 規格中的實體宣告。

目前(2001 年 10 月),有這三個

http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent
http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent
http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent

作者

Sean M. Burke sburke@cpan.org

目前由 Neil Bowers <neilb@cpan.org> 維護