Perl到了第五版增加了模块的概念,用来提供面向对象编程的能力。这是Perl语言发展史上
的一个里程碑。此后,广大自由软件爱好者开发了大量功能强大、构思精巧的Perl模块,极大地
扩展了Perl语言的功能。CPAN(Comprehensive Perl Archive Network)是internet上Perl模块
最大的集散地,包含了现今公布的几乎所有的perl模块。
几个主要的CPAN站点有:
国内:ftp://freesoft.cgi.gov.cn/pub/languages/perl/CPAN
http://cpan.qz.fj.cn/
国外:http://www.cpan.org/
http://www.perl.com/CPAN-local/
我在这里介绍一下各种平台下perl模块的安装方法。以安装DBI模块为例。
1、Linux/Unix下的安装方法:
Linux/Unix下安装Perl模块有两种方法:手工安装和自动安装。第一种方法是从CPAN上下载
您需要的模块,手工编译、安装。第二种方法是联上internet,使用一个叫做CPAN的模块自动完
成下载、编译、安装的全过程。
a、手工安装的步骤:
从CPAN下载了DBI模块1.13版的压缩文件DBI-1.13.tar.gz,假设放在/usr/local/src/下。
cd /usr/local/src
解压缩这个文件:
tar xvzf DBI-1.13.tar.gz
这时会新建一个DBI-1.13的目录。
cd DBI-1.13
生成makefile:
perl Makefile.PL
建立模块
make
测试模块
make test
如果测试结果报告“all test ok”,您就可以放心地安装编译好的模块了。安装模块前,先要
确保您对perl5安装目录有可写权限(通常以su命令获得),执行:
make install
现在,写个程序试试吧。
#!/usr/bin/perl -w
use strict;
use DBI;
..
上述步骤适合于Linux/Unix下绝大多数的Perl模块。可能还有少数模块的安装方法略有差别,
所以最好先看看安装目录里的README或INSTALL。另外,上述过程是针对动态链接的Perl编译
器(所有Linux下预安装的Perl都是动态链接的),如果您在使用一个静态链接的Perl,您需要将
新的模块静态链接到perl编译器中,可能还需要重启机器。
b、使用CPAN模块自动安装:
安装前需要先联上线,并且您需要取得root权限。
perl -MCPAN -e shell
初次运行CPAN时需要做一些设置,如果您的机器是直接与internet相联(拨号上网、专线,etc.),
那么一路回车就行了,只需要在最后选一个离您最近的CPAN镜像站点。例如我选的是位于国内的
中国自由软件库ftp://freesoft.cgi.gov.cn/pub/languages/perl/CPAN 。否则,如果您的机器
位于防火墙之后,还需要设置ftp代理或http代理。
获得帮助
cpan>h
列出CPAN上所有模块的列表
cpan>m
安装模块
cpan>install DBI
自动完成DBI模块从下载到安装的全过程。
退出
cpan>q
2、Win32下的安装方法:
在Win32下,建议使用ActiveState的Perl for Win32,即ActivePerl。ActivePerl的主页在:
http://www.activestate.com/ 。在Win32下,最好也使用专门为ActivePerl定制的Perl模块。从
CPAN下载的Perl模块不能很好地在ActivePerl下使用。类似于CPAN模块,ActiveState也开发
了一个自动安装工具叫做PPM(Perl Package Manager)。
最通常的安装方法是:
首先联上线
在dos命令行下启动ppm
ppm
获得帮助
PPM>h
列出ActiveState站点上所有为Perl模块的清单。
PPM>search
安装模块
PPM>install DBI
自动完成DBI模块从下载到安装的全过程。
退出
PPM>q
如果您的机器位于防火墙之后,通过http代理上网,那么可以使用下面的方法。
对于老的基于perl 5.005的ActivePerl版本(ActivePerl 522以下版本,不包括ActivePerl 522),从
http://www.ActiveState.com/ppmpackages/5.005/zips/下载您需要的Perl模块,例如DBI.zip。
将其解压缩在C:\TEMP\DBI下
cd \TEMP\DBI
ppm install DBI.PPD
最新的基于perl 5.6的ActivePerl版本(ActivePerl 613及以上版本)的安装方法略有不同。安
装ActivePerl 613前需要先安装Microsoft的Windows Installer。
Windows Installer从这里下载:
http://activestate.com/download/contrib/Microsoft/9x/InstMsi.exe
ActivePerl 613从这里下载:
http://activestate.com/download/ActivePerl/Windows/5.6/ActivePerl-5.6.0.613.msi
对于基于perl 5.6的ActivePerl版本,从
http://www.activestate.com/PPMPackages/5.6/
下载您需要的Perl模块的安装描述文件,例如DBI.PPD
安装模块前需要先联上线
ppm install DBI.PPD。
以上较为详细地描述了各种平台下Perl模块的安装方法。希望能够帮助国内Perl爱好者们通过
使用现有大量优秀的Perl模块,避免重复劳动,提高效率,更好发挥Perl语言的强大威力。
如何安装perl模块
Can't locate Log/Log4perl.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./logToScreen.pl line 3.
BEGIN failed--compilation aborted at ./logToScreen.pl line 3.
Installing Perl modules with CPAN.pm (best way)
Use the CPAN.pm module. To read about it, do "perldoc CPAN", or in XEmacs use the Perldoc pull-down when you're editing a Perl file.
The first time you use CPAN.pm, it will ask a long series of questions, the answers for which can be found below. Don't answer them until you've installed ncftp on the local machine.
If you've already installed CPAN and just want to use it, do like
(as root)
(sudo) perl -MCPAN -e shell
install Log::Log4perl
install HTML::TokeParser::Simple
h
q
The above will install Log4perl in /usr/lib/perl5/site_perl/5.6.1/Log/Log4perl.
需要注意的是必须使用root权限才能安装成功。
查看已安装的perl模块的代码:
#!/usr/bin/perl
use strict;
use ExtUtils::Installed;
my $inst= ExtUtils::Installed->new();
my @modules = $inst->modules();
foreach(@modules)
{
my $ver = $inst->version($_) || "???";
printf("%-12s -- %s ", $_, $ver);
}
exit 0;
教你如何查看已安装的Perl模块
2008-04-30 17:39:31| 分类: Perl Programming | 标签: |字号大中小 订阅
[root@localhost perl]# find / -name *.pm
/usr/lib/perl5/vendor_perl/5.8.8/LWP.pm
/usr/lib/perl5/vendor_perl/5.8.8/Foomatic/PPD.pm
/usr/lib/perl5/vendor_perl/5.8.8/Foomatic/DB.pm
/usr/lib/perl5/vendor_perl/5.8.8/Foomatic/Defaults.pm
/usr/lib/perl5/vendor_perl/5.8.8/Foomatic/UIElem.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/Escape.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/mms.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/ldap.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/_login.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/rlogin.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/ldaps.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/http.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/_userpass.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/ftp.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/file.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/ldapi.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/telnet.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/_query.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/Heuristic.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/pop.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/URL.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/https.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/tn3270.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/sips.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/sip.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/gopher.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/urn/oid.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/urn/isbn.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/file/OS2.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/file/FAT.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/file/Unix.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/file/QNX.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/file/Base.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/file/Win32.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/file/Mac.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/_server.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/nntp.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/QueryParam.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/Split.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/WithBase.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/rtspu.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/rsync.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/ssh.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/_generic.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/urn.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/_foreign.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/_segment.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/news.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/snews.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/data.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/rtsp.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/_ldap.pm
/usr/lib/perl5/vendor_perl/5.8.8/URI/mailto.pm
/usr/lib/perl5/vendor_perl/5.8.8/HTML/Form.pm
/usr/lib/perl5/vendor_perl/5.8.8/HTML/Tagset.pm
... ... ...
当然你也可以用locate来查找,记得先更新你的索引数据库哦。
[root@localhost perl]# updatedb; locate *.pm
/usr/share/automake-1.7/Automake/Struct.pm
/usr/share/automake-1.7/Automake/XFile.pm
/usr/share/automake-1.9/Automake/ChannelDefs.pm
/usr/share/automake-1.9/Automake/Channels.pm
/usr/share/automake-1.9/Automake/Condition.pm
/usr/share/automake-1.9/Automake/Config.pm
/usr/share/automake-1.9/Automake/Configure_ac.pm
/usr/share/automake-1.9/Automake/DisjConditions.pm
/usr/share/automake-1.9/Automake/FileUtils.pm
/usr/share/automake-1.9/Automake/General.pm
/usr/share/automake-1.9/Automake/Item.pm
/usr/share/automake-1.9/Automake/ItemDef.pm
/usr/share/automake-1.9/Automake/Location.pm
/usr/share/automake-1.9/Automake/Options.pm
/usr/share/automake-1.9/Automake/Rule.pm
/usr/share/automake-1.9/Automake/RuleDef.pm
/usr/share/automake-1.9/Automake/Struct.pm
/usr/share/automake-1.9/Automake/VarDef.pm
/usr/share/automake-1.9/Automake/Variable.pm
/usr/share/automake-1.9/Automake/Version.pm
/usr/share/automake-1.9/Automake/Wrap.pm
/usr/share/automake-1.9/Automake/XFile.pm
/usr/share/logwatch/lib/Logwatch.pm
在 linux 下检查已经安装的模块:
# perl -MCPAN -e shell
cpan>m
模块名称 | 描述 |
这个模块提供的例程可以创建一个全功能的服务器,它可以作为单连接服务器运行,也可以通过*NIX的inetd守护程序运行。它支持很多服务器特性,比如TCP、UDP和UNIX套接字的多路复用、分支、访问控制和事件处理,而且很容易通过子分类来扩展。 当你需要针对特定的需求创建一个高度自定义、可扩展的服务器时使用它。 | |
这个模块提供的例程可以利用Perl来连接POP3电子邮件服务器并进行事件处理。有了这个模块,你的Perl应用程序能够进行身份验证、读取和删除消息,或者使用预先定义的API获取信息列表。 当你需要创建一个基于POP3电子邮件客户端的时候使用这个模块。 | |
这个模块提供一个用来创建HTTP客户端和服务器的接口。它提供的面向对象的接口通过Perl来发送HTTP请求和解释HTTP的响应。它还支持代理服务器、cookie、HTTP身份验证和内容沟通,以及重新引导等,当你需要创建一个与Web服务器进行事件处理的HTTP客户端时,它就非常好用了。 当你需要创建一个与Web服务器进行交互操作的HTTP客户端时使用这个模块。 | |
这个模块提供的面向对象接口用来创建、管理和终止Perl环境里TCP/UDP套接字。 当你需要一个面向对象的接口在TCP/IP环境下进行套接字编程时使用这个模块。 |