perl网络模块

 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模块

2010-06-28 星期一 暴雨
运行perl脚本时,经常会发现如下类似的错误:
forrest@forrest-desktop:~/study/perl/log4perl$ ./logToScreen.pl 
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.
这个是因为
use Log::Log4perl;
Log::Log4perl模块没有安装。
forrest@ubuntu:~/study/perl$ ./memcached.pl 
Can't locate Cache/Memcached.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./memcached.pl line 5.
BEGIN failed--compilation aborted at ./memcached.pl line 5.
这个是因为
use Cache::Memcached;
Cache::Memcached模块没有安装。
解决方法:
网上搜索了一下:发现有一篇文章写的非常好:Perl (Pete's notes) [http://www.cisl.ucar.edu/nets/intro/staff/siemsen/tools/perl.html#log4perl]
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权限才能安装成功。

补记:2010-07-21 星期三 晴朗

今天翻看了一下《Learn Perl, 5th》,第十一章是Perl Modules,一开始就是介绍怎么安装perl模块的。感觉总结的非常好。
1. Fining Modules:
Modules come in two types: those that come with Perl and that you should have available to you, and those that you can get from CPAN to install yourself. 
To find modules that don’t come with Perl, start at either CPAN Search ( http://search.cpan.org) or Kobes’ Search ( http://kobesearch.cpan.org/).* You can browse through the categories or search directly.
tips: 如何检查一个perl模块是否已经安装了?
可以使用perldoc moduleName检查。
不过首先要现安装perl-doc
$sudo apt-get install perl-doc
$ perldoc CGI
Try it with a module that does not exist and you’ll get an error message.
$ perldoc Llamas
$ No documentation found for "Llamas".
最佳实践:使用MCPAN的m moduleName命令
cpan[1]> m DBI
CPAN: Storable loaded ok (v2.20)
Going to read '/home/forrest/.cpan/Metadata'
  Database was generated on Wed, 21 Jul 2010 07:35:04 GMT
Module id = DBI
    DESCRIPTION  Generic Database Interface (see DBD modules)
    CPAN_USERID  TIMB (Tim Bunce < Tim.Bunce@pobox.com>)
    CPAN_VERSION 1.612
     CPAN_FILE    T/TI/TIMB/DBI-1.612.tar.gz
    UPLOAD_DATE  2010-07-16
    DSLIP_STATUS MmcOp (mature,mailing-list,C,object-oriented,Standard-Perl)
    MANPAGE      DBI - Database independent interface for Perl
     INST_FILE    /usr/local/lib/perl/5.10.1/DBI.pm
    INST_VERSION 1.612
cpan[2]> m DBD::Oracle
Module id = DBD::Oracle
    DESCRIPTION  Oracle Driver for DBI
    CPAN_USERID  DBIML (DBI Mailing Lists < dbi-users@perl.org>)
    CPAN_VERSION 1.24
     CPAN_FILE    P/PY/PYTHIAN/DBD-Oracle-1.24b.tar.gz
    DSLIP_STATUS MmcO? (mature,mailing-list,C,object-oriented,)
     INST_FILE    (not installed)
2.  Installing Modules
三种方法:
法一:下载安装包手动安装
you can download the distribution, unpack it, and run a series of commands from the shell. Check for a README or INSTALL file that gives you more information. If the module uses MakeMaker,† the sequence will be something like this:
    $ perl Makefile.PL
    $ make install
If you can’t install modules in the system-wide directories, you can specify another directory with a PREFIX argument to Makefile.PL:
    $ perl Makefile.PL PREFIX=/Users/fred/lib
Some Perl module authors use another module, Module::Build, to build and install their creations. That sequence will be something like this:
    $ perl Build.PL
    $ ./Build install
缺点:无法自动安装依赖的包(Some modules depend on other modules though, and they won’t work unless you install yet more modules.)
法二:使用Perl自带的模块—— CPAN.pm模块
$ perl -MCPAN -e shell
就是我们前面介绍的方法,这里就不赘述了。
法三:使用Perl自带的一个perl脚本——cpan脚本
$ cpan Module::CoreList LWP CGI::Prototype

 

 

 

 

查看已安装的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 |  标签: |字号 订阅

因为Perl模块大多数都是以.pm结尾的,所以只要做个查找命令就可以了。

[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


 

模块名称

描述

Net::Server

这个模块提供的例程可以创建一个全功能的服务器,它可以作为单连接服务器运行,也可以通过*NIX的inetd守护程序运行。它支持很多服务器特性,比如TCP、UDP和UNIX套接字的多路复用、分支、访问控制和事件处理,而且很容易通过子分类来扩展。

当你需要针对特定的需求创建一个高度自定义、可扩展的服务器时使用它。

Net::POP3

这个模块提供的例程可以利用Perl来连接POP3电子邮件服务器并进行事件处理。有了这个模块,你的Perl应用程序能够进行身份验证、读取和删除消息,或者使用预先定义的API获取信息列表。

当你需要创建一个基于POP3电子邮件客户端的时候使用这个模块。

LWP

这个模块提供一个用来创建HTTP客户端和服务器的接口。它提供的面向对象的接口通过Perl来发送HTTP请求和解释HTTP的响应。它还支持代理服务器、cookie、HTTP身份验证和内容沟通,以及重新引导等,当你需要创建一个与Web服务器进行事件处理的HTTP客户端时,它就非常好用了。

当你需要创建一个与Web服务器进行交互操作的HTTP客户端时使用这个模块。

Net::Socket

这个模块提供的面向对象接口用来创建、管理和终止Perl环境里TCP/UDP套接字。

当你需要一个面向对象的接口在TCP/IP环境下进行套接字编程时使用这个模块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值