Perl本身自带了很丰富的文档,如果把它们都打印出来,恐怕要耗费大量纸墨。我们试图清点过,但数到2000页左右的时候就数不清了(不用担心,我们用虚拟打印机计算页面数量,这样不会对树木造成威胁,挺环保的)。

Perl文档中包含大量有价值的信息,这些文档绝对值得仔细品读,哪怕只花一点功夫,学会如何从这些文档中查找所需的资料也是值得的。要从这些文档中迅速找到需要的内容,除了要具备相关的知识外,得力的工具也必不可少。

1. perldoc文档阅读器

perldoc这个命令能搜索Perl安装目录树中内嵌文档的Perl模块文件(扩展名为.pm)、.pod结尾的POD文档(见条款82),以及已安装的各种Perl工具的文档。该命令会将它找到的文档格式化后显示出来。让我们先从阅读perldoc自身的文档开始吧:

  1. % perldoc perldoc
  2. PERLDOC(1) User Contributed Perl Documentation
  3. NAME
  4. C<perldoc> - Look up Perl documentation in pod format.
  5. SYNOPSIS
  6. C<perldoc> [-h] [-v] [-t] [-u] [-m] [-l]
  7. ……省略了剩余内容……

一般来说,将文档的名称作为参数传递给perldoc命令,即可查阅该文档。比如下面,给定文档名称perltoc,就会显示所有内置文档的目录:

  1. % perldoc perltoc

你也许会对perlsyn文档的内容感兴趣,该文档主要描述Perl的基本语法:

  1. % perldoc perlsyn

如果想阅读关于Perl内置函数的用法,可以查看perlfunc文档:

  1. % perldoc perlfunc

至少得把perlfunc文档通读一遍,才能大致了解Perl都能提供些什么功能。当然,不需要把它们都记下来,只要在大脑中有个印象就够了。比如说,只要知道Perl有个内置函数可以处理/etc/passwd文件,但具体是哪个,可以到perlfunc文档里找。要是觉得滚动这么长的页面太过麻烦,只要记得内置函数的名字,就可以用-f开关指定,直接阅读该函数相关的内容:

  1. % perldoc -f split

也可以用perldoc来阅读模块内嵌的文档,只需提供模块名作为参数即可:

  1. % perldoc Pod::Simple

如果想了解这个模块安装在什么地方,可以用-l(小写的L)开关打印该模块的路径:

  1. % perldoc -l Pod::Simple

如果要查看模块源代码,可以用-m开关:

  1. % perldoc -m Pod::Simple

Perl文档还包括了FAQ,可以在其中找到许多常见问题的解答。虽然有个在线版本可以阅读,但命令行的perldoc有个好处,就是可以用-q开关搜索相关主题,非常方便。比如有关随机数的处理,可以试试这个:

  1. % perldoc -q random

2. 在线文档

在写本书时,http://perldoc.perl.org/是最好的Perl在线文档站点。它包含了Perl最近几个版本的核心文档(包括HTML和PDF格式),不只如此,它还会记录你曾经看过哪些文档。

但该站点并不提供所有模块的文档。想要看到所有模块的文档,可以到CPAN Search(http://search.cpan.org/)和Kobes's Search(http://kobesearch.cpan.org/)这两个站点去看看。这两个站点都提供CPAN的网页查询界面。许多人甚至觉得直接访问以上站点,比阅读本机附带的文档还要方便。

CPAN Search很有用,尤其是它在每个模块页面中都提供了其他工具链接。其中一个工具有类似grep的功能,用它可以方便地在某个模块不同的发行版本中搜索特定内容。比如想要跟踪某个出错信息来自哪个模块中的哪个文件,就可以用它来试一试。

AnnoCPAN(http://annocpan.org/)是另一个提供模块文档的站点。但它的出发点是让任何人都有机会对模块文档本身添加评注,或是给作者或其他用户留言。这个功能在文档信息不全或者不正确、不完整的情况下显得特别有用。

3. 本地文档

在本地也能够实现部分和CPAN Search站点类似的功能。借助CPAN::Mini::Webserver模块,我们可以在本地搭建一台Web服务器,然后通过浏览器查阅自己的MiniCPAN库(见条款66)。如果运行的是Apache Web服务器,你还可以用Apache::Perldoc模块,在Web界面中调用本地的perldoc命令。

此外,Pod::POM::Web模块也能让你以Web方式查看本地文档。以mod_perl或者CGI脚本的形式在Apache上运行都没问题,或者干脆直接使用其内置的Web服务器:

  1. % perl -MPod::POM::Web -e "Pod::POM::Web->server

查看perl及其模块的更多相关文章

  1. Perl 多线程模块 Parallel::ForkManager

    Perl 多线程模块 Parallel::ForkManager 一个简单的并行处理模块.这个是用来对付循环的多线程处理. 放在循环前面. Table of Contents 1 Synops内容简介 ...

  2. perl json模块

    JSON - JSON (JavaScript Object Notation) encoder/decoder 简介: use JSON; # imports encode_json, decode ...

  3. 查看python内部模块命令,内置函数,查看python已经安装的模块命令

    查看python内部模块命令,内置函数,查看python已经安装的模块命令 可以用dir(modules) 或者用 pip list或者用 help('modules') 或者用 python -m  ...

  4. 查看python中模块的所有方法

    查看python中模块的所有方法     安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交 ...

  5. pip 查看已安装模块、卸载指定模块、安装指定版本模块

    操作背景 最近使用 pandas+numpy+plotly 画heatmap(热力图),来处理股票数据,语法.步骤都没问题,但到画图那一步老是报错,且 plotly 版本为3.1.0: 最后找到原因, ...

  6. npm 查看全局安装模块

    方法一: npm list -g --depth 0 方法二: 输入npm root -g  得到全局node_modules的地址 在任意文件夹输入此地址,便可查看所安模块 https://blog ...

  7. Perl使用模块和@INC

    use加载模块 安装模块后,都会有对应的文档,可以通过perldoc MODULE_NAME来获取模块的使用帮助. 例如:获取File::Utils的使用帮助. perldoc File::Utils ...

  8. python如何查看有哪些模块

    Question: 如何查看正则表达式模块re及其相关函数的意义 1.终端命令行下 python >> import sys >> sys.modules ########## ...

  9. 6、perl创建模块(Exporter)及路径 引用 嵌套 查询模块

    参考博客:http://www.cnblogs.com/xudongliang/tag/perl/ 1.perl 模块的创建以及制定perl 模块的路径 (1)创建一个Myfun.pm模块. #/us ...

随机推荐

  1. #import vs. @class

    You #import or #include when there is a physical dependency. Otherwise, you use forward declarations ...

  2. RAC例子

    我个人非常推崇ReactiveCocoa,它就像中国的太极,太极生两仪,两仪生四象,四象生八卦,八卦生万物.ReactiveCocoa是一个高度抽象的编程框架,它真的很抽象,初看你不知道它是要干嘛的, ...

  3. C#: 获取执行程序所在路径和启动资源管理器

    一. 获取执行程序所在路径 1.获取和设置当前目录的完全限定路径. string str = System.Environment.CurrentDirectory;  //获取的是主程序目录,线程启 ...

  4. YTU 3005: 皇后问题(栈和队列)

    3005: 皇后问题(栈和队列) 时间限制: 1 Sec  内存限制: 128 MB 提交: 6  解决: 3 题目描述 编写一个函数,求解皇后问题:在n*n的方格棋盘上,放置n个皇后,要求每个皇后不 ...

  5. python项目练习3:万能的XML

    1.目的 如何用XML来表示多种数据,以及如何使用适合XML或SAX的简单API来处理XML文本.目标是通过一个描述各种网页和目录的XML文件生成一个完整的网站. 注:有关XML的描述参见http:/ ...

  6. Unity-Animator深入系列---StateMachineBehaviour状态机脚本学习

    回到 Animator深入系列总目录 首先这个脚本必须继承自StateMachineBehaviour public class MySMB : StateMachineBehaviour { pub ...

  7. Unity Adam特性整理

    1.Wind 小工具,一个绘制箭头Gizmos的脚本 2.TubeLight柱形光照 蛮NB的技术,实现动态柱状光照,但相机必须挂上PostProcessing 默认场景拖出来之后是这样的,然后给相机 ...

  8. web前端职业规划

    关于一个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭自己的选择,只要是自己选定了, 坚持去认真走,就好.在这里,我只是简要说一下自己对于这块儿内容的理解.有一个观点想要分享 ...

  9. Mysql压测工具mysqlslap 讲解

    在mysql5.1以后的版本:客户端带了个工具mysqlslap可以对mysql进行压力测试: 可以使用mysqlslap --help来显示使用方法: Default options are rea ...

  10. 在Window Embedded CE(Wince)下使用OpenNETCF进行路由表的开发

    点击打开链接 背景 在开发3G项目的是时候,发现尽管3G网络连接已经建立成功了,但是数据不能发送成功,查明原因,由于路由表的问题,导致数据往ActiveSync连接的对端,也就是PC发送,而不是发送到 ...