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. Java生产者和消费者问题

    容器类Box.java public class Box { private int num = 0; public void put(){ if(num==10){ try { System.out ...

  2. SpringMVC整合TaskExecutor线程池的配置/使用

    一.配置jdbc.properties添加: #------------ Task ------------ task.core_pool_size=5 task.max_pool_size=50 t ...

  3. XML 解析 -- IE ,Chrome

    通用的method <script type="text/javascript"> //for chrome, attach method to XMLDocument ...

  4. ExtJS4.2 根据数据库记录构建树形菜单

    背景:最近用ExtJS4.2做一个系统,需要在前端展示资源菜单,为树形结构,该树形结构是从数据库动态加载的. ExtJS的树形结构大致有两种情况: 1.静态树形结构,此处不多说,看API就能简单明白: ...

  5. mysql delete数据 空间占用不减少的解决办法

    今天空间商告诉我数据库空间满了,检查了一下,发现网站用户行为记录数据表竟然占了20多MB.积累了半年了,该删除释放一下空间了.果断delete之后发现数据库空间竟然没少,虽然数据记录数是零. 原来这是 ...

  6. Hibernate,JPA注解@Entity

    通过@Entity注解将一个类声明为一个实体bean(即一个持久化POJO类), @Id注解则声明了该实体bean的标识属性. 其他的映射定义是隐式的. 就是说一个持久化POJO类,除了主键ID需要@ ...

  7. PHP正则表达式的使用

    1. 正则表达式的主要作用是:分割.匹配.查找.替换2. 正则表达式中包括的元素:原子(普通字符:a-z A-Z 0-9 .原子表.转义字符),元字符(有特殊功能的字符),模式修正符(系统内置部分字符 ...

  8. HDU 2236:无题II(二分搜索+二分匹配)

    http://acm.hdu.edu.cn/showproblem.php?pid=2236 题意:中文题意. 思路:先找出最大和最小值,然后二分差值,对于每一个差值从下界开始枚举判断能不能二分匹配. ...

  9. 【转】MYSQL入门学习之八:数据库及表的基本操作

    转载地址:http://www.2cto.com/database/201212/175867.html 一.操作数据库  www.2cto.com    1.查看数据库          show ...

  10. word中设置前几页为罗马数字,后几页设置为阿拉伯数字

    假如第1-5页摘要部分页脚要是罗马数字,第6页开始是正文部分是阿拉伯数字,起始页为1. WORD2003 1.将光标定位在第5页末尾处,在菜单栏中依次点击“插入——分隔符——(分节符类型)下一页”.按 ...