查看perl及其模块
Perl本身自带了很丰富的文档,如果把它们都打印出来,恐怕要耗费大量纸墨。我们试图清点过,但数到2000页左右的时候就数不清了(不用担心,我们用虚拟打印机计算页面数量,这样不会对树木造成威胁,挺环保的)。
Perl文档中包含大量有价值的信息,这些文档绝对值得仔细品读,哪怕只花一点功夫,学会如何从这些文档中查找所需的资料也是值得的。要从这些文档中迅速找到需要的内容,除了要具备相关的知识外,得力的工具也必不可少。
1. perldoc文档阅读器
perldoc这个命令能搜索Perl安装目录树中内嵌文档的Perl模块文件(扩展名为.pm)、.pod结尾的POD文档(见条款82),以及已安装的各种Perl工具的文档。该命令会将它找到的文档格式化后显示出来。让我们先从阅读perldoc自身的文档开始吧:
- % perldoc perldoc
- PERLDOC(1) User Contributed Perl Documentation
- NAME
- C<perldoc> - Look up Perl documentation in pod format.
- SYNOPSIS
- C<perldoc> [-h] [-v] [-t] [-u] [-m] [-l]
- ……省略了剩余内容……
一般来说,将文档的名称作为参数传递给perldoc命令,即可查阅该文档。比如下面,给定文档名称perltoc,就会显示所有内置文档的目录:
- % perldoc perltoc
你也许会对perlsyn文档的内容感兴趣,该文档主要描述Perl的基本语法:
- % perldoc perlsyn
如果想阅读关于Perl内置函数的用法,可以查看perlfunc文档:
- % perldoc perlfunc
至少得把perlfunc文档通读一遍,才能大致了解Perl都能提供些什么功能。当然,不需要把它们都记下来,只要在大脑中有个印象就够了。比如说,只要知道Perl有个内置函数可以处理/etc/passwd文件,但具体是哪个,可以到perlfunc文档里找。要是觉得滚动这么长的页面太过麻烦,只要记得内置函数的名字,就可以用-f开关指定,直接阅读该函数相关的内容:
- % perldoc -f split
也可以用perldoc来阅读模块内嵌的文档,只需提供模块名作为参数即可:
- % perldoc Pod::Simple
如果想了解这个模块安装在什么地方,可以用-l(小写的L)开关打印该模块的路径:
- % perldoc -l Pod::Simple
如果要查看模块源代码,可以用-m开关:
- % perldoc -m Pod::Simple
Perl文档还包括了FAQ,可以在其中找到许多常见问题的解答。虽然有个在线版本可以阅读,但命令行的perldoc有个好处,就是可以用-q开关搜索相关主题,非常方便。比如有关随机数的处理,可以试试这个:
- % 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服务器:
- % perl -MPod::POM::Web -e "Pod::POM::Web->server
查看perl及其模块的更多相关文章
- Perl 多线程模块 Parallel::ForkManager
Perl 多线程模块 Parallel::ForkManager 一个简单的并行处理模块.这个是用来对付循环的多线程处理. 放在循环前面. Table of Contents 1 Synops内容简介 ...
- perl json模块
JSON - JSON (JavaScript Object Notation) encoder/decoder 简介: use JSON; # imports encode_json, decode ...
- 查看python内部模块命令,内置函数,查看python已经安装的模块命令
查看python内部模块命令,内置函数,查看python已经安装的模块命令 可以用dir(modules) 或者用 pip list或者用 help('modules') 或者用 python -m ...
- 查看python中模块的所有方法
查看python中模块的所有方法 安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交 ...
- pip 查看已安装模块、卸载指定模块、安装指定版本模块
操作背景 最近使用 pandas+numpy+plotly 画heatmap(热力图),来处理股票数据,语法.步骤都没问题,但到画图那一步老是报错,且 plotly 版本为3.1.0: 最后找到原因, ...
- npm 查看全局安装模块
方法一: npm list -g --depth 0 方法二: 输入npm root -g 得到全局node_modules的地址 在任意文件夹输入此地址,便可查看所安模块 https://blog ...
- Perl使用模块和@INC
use加载模块 安装模块后,都会有对应的文档,可以通过perldoc MODULE_NAME来获取模块的使用帮助. 例如:获取File::Utils的使用帮助. perldoc File::Utils ...
- python如何查看有哪些模块
Question: 如何查看正则表达式模块re及其相关函数的意义 1.终端命令行下 python >> import sys >> sys.modules ########## ...
- 6、perl创建模块(Exporter)及路径 引用 嵌套 查询模块
参考博客:http://www.cnblogs.com/xudongliang/tag/perl/ 1.perl 模块的创建以及制定perl 模块的路径 (1)创建一个Myfun.pm模块. #/us ...
随机推荐
- #import vs. @class
You #import or #include when there is a physical dependency. Otherwise, you use forward declarations ...
- RAC例子
我个人非常推崇ReactiveCocoa,它就像中国的太极,太极生两仪,两仪生四象,四象生八卦,八卦生万物.ReactiveCocoa是一个高度抽象的编程框架,它真的很抽象,初看你不知道它是要干嘛的, ...
- C#: 获取执行程序所在路径和启动资源管理器
一. 获取执行程序所在路径 1.获取和设置当前目录的完全限定路径. string str = System.Environment.CurrentDirectory; //获取的是主程序目录,线程启 ...
- YTU 3005: 皇后问题(栈和队列)
3005: 皇后问题(栈和队列) 时间限制: 1 Sec 内存限制: 128 MB 提交: 6 解决: 3 题目描述 编写一个函数,求解皇后问题:在n*n的方格棋盘上,放置n个皇后,要求每个皇后不 ...
- python项目练习3:万能的XML
1.目的 如何用XML来表示多种数据,以及如何使用适合XML或SAX的简单API来处理XML文本.目标是通过一个描述各种网页和目录的XML文件生成一个完整的网站. 注:有关XML的描述参见http:/ ...
- Unity-Animator深入系列---StateMachineBehaviour状态机脚本学习
回到 Animator深入系列总目录 首先这个脚本必须继承自StateMachineBehaviour public class MySMB : StateMachineBehaviour { pub ...
- Unity Adam特性整理
1.Wind 小工具,一个绘制箭头Gizmos的脚本 2.TubeLight柱形光照 蛮NB的技术,实现动态柱状光照,但相机必须挂上PostProcessing 默认场景拖出来之后是这样的,然后给相机 ...
- web前端职业规划
关于一个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭自己的选择,只要是自己选定了, 坚持去认真走,就好.在这里,我只是简要说一下自己对于这块儿内容的理解.有一个观点想要分享 ...
- Mysql压测工具mysqlslap 讲解
在mysql5.1以后的版本:客户端带了个工具mysqlslap可以对mysql进行压力测试: 可以使用mysqlslap --help来显示使用方法: Default options are rea ...
- 在Window Embedded CE(Wince)下使用OpenNETCF进行路由表的开发
点击打开链接 背景 在开发3G项目的是时候,发现尽管3G网络连接已经建立成功了,但是数据不能发送成功,查明原因,由于路由表的问题,导致数据往ActiveSync连接的对端,也就是PC发送,而不是发送到 ...