Perl 到了第五版增加了模块的概念,用来提供面向对象编程的能力。这是 Perl 语言发展史上的一个里程碑。此后,广大自由软件爱好者开发了大量功能强大、构思精巧的 Perl 模块,极大地扩展了 Perl 语言的功能。CPAN(Comprehensive Perl Archive Network)是 Perl 模块最大的集散地,包含了现今公布的几乎所有的 perl 模块。
几个主要的 CPAN 站点有:
国内:最新更新请查阅 http://cpan.org/SITES.html#Asiaftp://mirrors.hknet.com/CPAN 模块镜像http://mirrors.dayouit.com/CPAN/ 网页镜像http://cpan.linuxforum.net/ 网页镜像国外:http://www.cpan.org/
安装方法
我在这里介绍一下各种平台下 perl 模块的安装方法。以安装DBI模块为例。
Linux/Unix下的安装方法:
Linux/Unix 下安装 Perl 模块有两种方法:手工安装和自动安装。第一种方法是从 CPAN 上下载您需要的模块,手工编译、安装。第二种方法是使用 CPAN 模块自动完成下载、编译、安装的全过程。
手工安装的步骤:从 CPAN 下载了 DBI 模块 1.13 版的压缩文件 DBI-1.13.tar.gz,假设放在 /usr/local/src/ 下。cd /usr/local/src解压缩这个文件,这时会新建一个DBI-1.13的目录。tar xvzf DBI-1.13.tar.gz换到解压后的目录: cd DBI-1.13生成 makefile:perl Makefile.PL生成模块:make测试模块(这步可有可无): make test
如果测试结果报告“all test ok”,您就可以放心地安装编译好的模块了。安装模块前,先要确保您对 perl5 安装目录有可写权限(通常以 su 命令获得),执行:
make install现在,试试 DBI 模块吧。如果下面的命令没有给出任何输出,那就没问题。
$>perl -MDBI -e1
上述步骤适合于 Linux/Unix 下绝大多数的 Perl 模块。可能还有少数模块的安装方法略有差别,所以最好先看看安装目录里的 README 或 INSTALL。使用 CPAN 模块自动安装:
安装前需要先联上网,并且您需要取得root权限。perl -MCPAN -e shell
初次运行CPAN时需要做一些设置,如果您的机器是直接与因特网相联(拨号上网、专线,etc.),那么一路回车就行了,只需要在最后一步选一个离您最近的 CPAN 镜像站点。例如我选的是位于国内的ftp://mirrors.hknet.com/CPAN 。否则,如果您的机器位于防火墙之后,还需要设置ftp代理或http代理。下面是常用 ppm 命令。如何更改CPAN 镜像地址:
无需手工修改 /etc/perl/CPAN/Config.pm 来改变 CPAN 镜像地址的,以ROOT身
份运行:
# perl -MCPAN -e shell
cpan> o conf urllist unshift http://www.perl.com/CPAN/
cpan> o conf commit获得帮助
cpan>help列出CPAN上所有模块的列表
cpan>m安装模块,自动完成DBI模块从下载到安装的全过程。
cpan>install DBI退出
cpan>quit
Win32下的安装方法:
在 Win32 下,建议使用 Active State 的 Perl for Win32,即Active Perl。Active Perl 的主页在:
http://www.activestate.com/ 。
在 Win32 下,比较容易的是使用专门为 Active Perl? 定制的 Perl 模块。类似于 CPAN 模块,Active State也开发了一个自动安装工具叫做 PPM(Perl Package Manager)。
ppm获得帮助
PPM>h列出已安装的 DBI 模块信息
cpan>query DBI搜索 cpan 所有匹配 DBI 的模块
cpan>search DBI安装模块,自动完成 DBI 模块从下载到安装的全过程。
PPM>install DBI退出
PPM>q如果您的机器位于防火墙之后,通过 http 代理上网,那么可以使用下面的方法。设定环境变量 HTTP_proxy
C: \ > set HTTP_proxy=http://proxy:8080
如果你的代理需要用户名和密码,你还要设定环境变量: HTTP_proxy_user 和 HTTP_proxy_pass安装 activeperl 不包括的模块
如果 ppm 没有某个 CPAN 的模块,只要这个模块不需要编译(没有使用 C 等)那你可以把这个模块从 CPAN 下载,解压然后放到你的 activeperl 的库路径里, perl -e "print join ' ' @INC" 显示出 perl 的库路径。activeperl 里不包括所有的 CPAN 模块,其他地方可能提供这些模块的下载,比如在 activeperl 5.8 的 GD 模块安装请使用如下命令:
>ppm install http://theoryx5.uwinnipeg.ca/ppms/GD.ppdactiveperl 5.6 的 GD 模块安装请使用如下命令:
>ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/GD.ppd其他 activeperl 模块下载地址请参照 Perl学习指南 。