内容

名称

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

Describes search for the item in detail.

-t

使用纯text 转换器显示文档,而不是 nroff。这可能更快,但可能看起来不太好。

-u

跳过真正的 Pod 格式,只显示原始 Pod 源代码 (Unformatted)

-m module

显示整个模块:代码和未格式化的 pod 文档。如果文档没有详细解释您需要的函数,并且您想直接检查代码,这可能很有用;perldoc 会为您找到文件,并将其直接传递以供显示。

-l

仅显示找到的模块的l文件名。

-U

以超级用户身份运行时,不要尝试降低安全权限。此选项在使用-F时隐含。

注意:有关更多信息,请参阅下面的 SECURITY 标题。

-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 目标文件名

这指定输出既不发送到寻呼机也不发送到 STDOUT,而是保存到指定的文件名。例如:perldoc -oLaTeX -dtextwrapdocs.tex Text::Wrap

-o 输出格式名

这指定您希望 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 模块名

这指定您希望尝试用于格式化 pod 的模块。该类至少必须提供一个 parse_from_file 方法。例如:perldoc -MPod::Perldoc::ToChecker

您可以通过逗号或分号将多个类连接起来来指定多个要尝试的类,例如 -MTk::SuperPod;Tk::Pod

-w 选项:值-w 选项

这指定一个选项来调用格式化程序 with。例如,-w textsize:15 将在格式化程序对象用于格式化对象之前,在格式化程序对象上调用 $formatter->textsize(15)。为了使这有效,格式化程序类必须提供这样的方法,并且您传递的值应该是有效的。(因此,如果 textsize 需要一个整数,而您执行 -w textsize:big,则可能会出现问题。)

您可以使用 -w optionname(不带值)作为 -w optionname:TRUE 的简写。这可能在 on/off 功能的情况下有用,例如:-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 环境变量指定的目录。(后者是为了使可执行文件(如 perldoc 本身)的嵌入式 pod 可用。)

在存在 Makefile.PLBuild.PL 的目录中,perldoc 会将 .lib 首先添加到其搜索路径中,并且只要您不是超级用户,也会添加 blib。如果您在构建目录中工作并希望阅读文档,即使您之前安装了模块的版本,这也会非常有用。

perldoc 会按照优先级顺序使用 PERLDOC_PAGERMANPAGERPAGER 中定义的分页器,然后再尝试自行查找分页器。(如果 perldoc 被告知显示纯文本或未格式化的 pod,则不会使用 MANPAGER。)

perldoc-m 模式(显示模块源代码)下,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 <[email protected]>

过去的贡献者包括:brian d foy <[email protected]> Adriano R. Ferreira <[email protected]>,Sean M. Burke <[email protected]>,Kenneth Albanowski <[email protected]>,Andy Dougherty <[email protected]>,以及许多其他人。