內容

名稱

perldoc - 以 Pod 格式查詢 Perl 文件。

語法

perldoc [-h] [-D] [-t] [-u] [-m] [-l] [-U] [-F]
    [-i] [-V] [-T] [-r]
    [-d destination_file]
    [-o formatname]
    [-M FormatterClassName]
    [-w formatteroption:value]
    [-n nroff-replacement]
    [-X]
    [-L language_code]
    PageName|ModuleName|ProgramName|URL

範例

perldoc -f BuiltinFunction

perldoc -L it -f BuiltinFunction

perldoc -q FAQ Keyword

perldoc -L fr -q FAQ Keyword

perldoc -v PerlVariable

perldoc -a PerlAPI

有關開關的更多說明,請見下方。

說明

perldoc 查詢嵌入在 perl 安裝樹或 perl 腳本中的 .pod 格式文件,並使用各種格式化程式顯示。這主要用於 perl 函式庫模組的文件。

您的系統也可能安裝了這些模組的手冊頁,這種情況下您可能只需要使用 man(1) 命令即可。

如果您正在尋找 Perl 函式庫模組文件的目錄,請參閱 perltoc 頁面。

選項

-h

列印簡短的help 訊息。

-D

D詳述搜尋項目。

-t

使用純文字轉換器顯示文件,而非 nroff。這樣可能會比較快,但可能看起來沒那麼漂亮。

-u

略過實際的 Pod 格式化,僅顯示原始 Pod 來源 (Unformatted)。

-m module

顯示整個模組:程式碼和未格式化的 pod 文件。如果文件無法詳細說明函式,而您想直接檢查程式碼,這可能會很有用;perldoc 會為您找到檔案,並直接傳遞以供顯示。

-l

僅顯示找到的模組的檔案名稱。

-U

以超級使用者身分執行時,請勿嘗試放棄權限以確保安全性。此選項會暗示 -F

注意:請參閱下方的安全性標題以取得更多資訊。

-F

將參數視為檔案名稱;不會在目錄中執行搜尋。如果以超級使用者身分執行,則會暗示 -U

-f perlfunc

-f 選項後接 perl 內建函式的名稱,將從 perlfunc 擷取此函式的文件。

範例

perldoc -f sprintf
-q perlfaq-search-regexp

-q 選項採用正規表示式作為參數。它會搜尋 perlfaq[1-9] 中的question 標題,並列印符合正規表示式的項目。

範例

perldoc -q shuffle
-a perlapifunc

-a 選項後接 perl api 函式的名稱,將從 perlapi 擷取此函式的文件。

範例

perldoc -a newHV
-v perlvar

-v 選項後接 Perl 預定義變數的名稱,將從 perlvar 擷取此變數的文件。

範例

perldoc -v '$"'
perldoc -v @+
perldoc -v DATA
-T

這指定輸出不應傳送至呼叫器,而應直接傳送至 STDOUT。

-d destination-filename

這指定輸出不應傳送至呼叫器或 STDOUT,而應儲存至指定的檔案名稱。範例:perldoc -oLaTeX -dtextwrapdocs.tex Text::Wrap

-o output-formatname

這指定您希望 Perldoc 嘗試使用 Pod 格式化類別來輸出您指定的格式。例如:-oman。這實際上只是 -M 開關的包裝器;使用 -oformatname 只會透過將該格式名稱(大小寫不同)新增至不同的類別名稱字首結尾來尋找可載入的類別。

例如,-oLaTeX 目前會嘗試所有以下類別:Pod::Perldoc::ToLaTeX Pod::Perldoc::Tolatex Pod::Perldoc::ToLatex Pod::Perldoc::ToLATEX Pod::Simple::LaTeX Pod::Simple::latex Pod::Simple::Latex Pod::Simple::LATEX Pod::LaTeX Pod::latex Pod::Latex Pod::LATEX。

-M module-name

這指定您希望嘗試用來格式化 pod 的模組。該類別至少必須提供 parse_from_file 方法。例如:perldoc -MPod::Perldoc::ToChecker

您可以透過逗號或分號將它們結合起來,來指定多個要嘗試的類別,例如 -MTk::SuperPod;Tk::Pod

-w option:value-w option

這指定一個選項來呼叫格式化器 w。例如,-w textsize:15 會在使用格式化器物件來格式化物件之前,在格式化器物件上呼叫 $formatter->textsize(15)。為了使這有效,格式化器類別必須提供此方法,而且您傳遞的值必須有效。(因此,如果 textsize 預期一個整數,而您執行 -w textsize:big,就會發生問題。)

您可以使用 -w optionname(沒有值)作為 -w optionname:TRUE 的簡寫。這可能在開/關功能中很有用,例如:-w page_numbering

您可以使用「=」取代「:」,例如:-w textsize=15。這可能會更(或較不)方便,視您使用的 shell 而定。

-X

如果存在索引,請使用索引。-X 選項會在檔案 $Config{archlib}/pod.idx 中尋找基本名稱與命令列上提供的名稱相符的項目。pod.idx 檔案應包含完全限定的檔名,每行一個。

-L language_code

這允許您指定所需語言翻譯的語言代碼。如果您的系統中未安裝 POD2::<language_code> 套件,則會忽略此開關。所有可用的翻譯套件都可以在 POD2:: 名稱空間中找到。請參閱 POD2::IT(或 POD2::FR)以了解如何建立新的在地化 POD2::* 文件套件,並將它們整合到 Pod::Perldoc 中。

PageName|ModuleName|ProgramName|URL

您要查詢的項目。巢狀模組(例如 File::Basename)指定為 File::BasenameFile/Basename。您也可以提供頁面的描述性名稱,例如 perlfunc。對於 URL,目前僅支援 HTTP 和 HTTPS。

對於「foo」等簡單的名稱,當一般搜尋找不到相符的頁面時,也會嘗試搜尋「perl」前綴。因此,輸入「perldoc intro」就足以找到/呈現「perlintro.pod」。

-n some-formatter

指定 groff 的替換。

-r

遞迴搜尋。

-i

忽略大小寫。

-V

顯示您正在執行的 perldoc 版本。

安全性

由於 perldoc 無法正確執行污染,且已知有安全性問題,因此當以超級使用者身分執行時,它會嘗試透過將有效和實際 ID 設定為 nobody 或 nouser 帳戶,或在不可用時設定為 -2 來放棄權限。如果它無法放棄其權限,它將不會執行。

如果您不想要此行為,請參閱 -U 選項,但請注意如果您選擇使用 -U,會有重大的安全性風險。

自 3.26 以來,以超級使用者身分使用 -F 也表示 -U,因為開啟大多數檔案和瀏覽目錄需要高於 nobody/nogroup 層級的權限。

環境

PERLDOC 環境變數中的任何開關都將在命令列引數之前使用。

PERLDOC 的有用值包括 -oterm-otext-ortf-oxml 等,具體取決於您手邊有哪些模組;或者格式化程式類別可以用 -MPod::Perldoc::ToTerm 或類似的程式碼明確指定。

perldoc 也會搜尋由 PERL5LIB(或未定義 PERL5LIB 時的 PERLLIB)和 PATH 環境變數指定的目錄。(後者是為了讓可執行檔的嵌入式 pod,例如 perldoc 本身,可用。)

在存在 Makefile.PLBuild.PL 的目錄中,perldoc 會先將 .lib 新增到其搜尋路徑中,只要您不是超級使用者,它也會新增 blib。如果您在建置目錄中工作,並且想要閱讀文件,即使您先前已安裝某個模組版本,這也會非常有幫助。

perldoc 會依序使用 PERLDOC_PAGERMANPAGERPAGER 中定義的換頁程式,再自行尋找換頁程式。(如果已指示 perldoc 顯示純文字或未格式化的 pod,則不會使用 MANPAGER。)

-m 模式(顯示模組原始碼)中使用 perldoc 時,perldoc 會嘗試使用 PERLDOC_SRC_PAGER 中設定的換頁程式。這個指令的一個有用設定是您最喜歡的編輯器,例如 /usr/bin/nano。(別批評我。)

PERLDOC_PAGER 的一個有用值是 less -+C -E

將 PERLDOCDEBUG 設定為正整數會讓 perldoc 發出比 -D 開關更詳盡的輸出;數字越大,發出的內容越多。

變更

在 3.14_05 之前,開關 -v 用於產生 perldoc 執行作業的詳細訊息,現在則由 -D 啟用。

另請參閱

perlpodPod::Perldoc

作者

目前的維護者:Mark Allen <mallen@cpan.org>

過去的貢獻者包括:brian d foy <bdfoy@cpan.org> Adriano R. Ferreira <ferreira@cpan.org>、Sean M. Burke <sburke@cpan.org>、Kenneth Albanowski <kjahds@kjahds.com>、Andy Dougherty <doughera@lafcol.lafayette.edu>,以及許多其他人。