设为首页 收藏本站
查看: 906|回复: 0

[经验分享] --perl 模块

[复制链接]

尚未签到

发表于 2015-12-26 08:12:11 | 显示全部楼层 |阅读模式
什么是CPAN?
CPAN是“perl档案智能网络”的意思,其中包括了大量的perl模块,软件和文档。
你可以从以下几个地方找到CPAN:http://www.cpan.org或http://www.perl.com/CPAN/或
在http://www.cpan.org/SITES.html和http://mirror.cpan.org中的镜像站点
同时请注意,CPAN还是一个PERL的模块名,CPAN.pm是一个用来自动下载和安装perl模块的工具,本文档只有少量的关于CPAN.pm的介绍,如果你想要更多的资料请到这里来http://theoryx5.uwinnipeg.ca/CPAN/perl/CPAN.html。  
我要如何安装PERL模块?
最简单的方法是perl -MCPAN -e ’install Chocolate::Belgian’,CPAN.pm文档有详细的如何使用该方法的介绍。
如果你不想要让系统过多的控制你的安装或者它根本就不能使用的话,那么你就要看看这篇文章了perlmodinstall,
他涵盖了UNIX,WINDOWS和Macintosh这几种主流系统。
如果你是使用的ActivePerl(WINDOWS平台),那么PPM(Perl Package Manager)也可以起到相当于CPAN.pm模块的作用。  
============================================
手工安装一般是
进入模块目录
make Makefile.PL
make;make test
make install(这一步需要管理员权限,或者你将模块安装到你的个人目录下面)  
我要如何移除已经安装了的模块?
使用ExtUtils::Installed和ExtUtils::Packlist这两个模块来实现。下面是一个例子,在ExtUtils::Packlist中有更详细的例子,可以参考一下。
#!/usr/local/bin/perl -w  
use ExtUtils::Packlist;
use ExtUtils::Installed;  
$ARGV[0] or die "Usage: $0 Module::Name\n";  
my $mod = $ARGV[0];   
my $inst = ExtUtils::Installed->new();  
foreach my $item (sort($inst->files($mod))) {
print "removing $item\n";
unlink $item;
}  
my $packfile = $inst->packlist($mod)->packlist_file();
print "removing $packfile\n";
unlink $packfile;  
我怎样才能知道安装了哪些模块在我的机子上呢?
perldoc perllocal  
每当你安装了一个模块,它就会在一个叫perllocal.pod的文件中添加如下所示的信息。
而该文件所在地依赖于你所定义的PATH路径,PATH路径可以使用perl -V显示出来。
下面是添加在perllocal.pod中的文件
=head2 Wed May 12 13:42:53 1999: C<Module> L<Data::Dumper>  
=over 4  
=item *  
C<installed into: /usr/local/lib/perl5/5.00503>  
=item *  
C<LINKTYPE: dynamic>  
=item *  
C<VERSION: 2.101>  
=item *  
C<EXE_FILES: >  
=back  
每个条目包括模块名字,安装日期和时间,安装到哪儿,链接形式(动态还是静态),版本号以及是否可执行,以及其他相关的一些信息!
使用ExtUtils::Installed模块  
ExtUtils::Installed提供了一个用来寻找已安装模块的标准方法。他从.packlist,一个安装模块时创建的文件中得到所需的信息,另外它还提供将安装文件分类的能力和从".packlist"文件中读取目录信息的能力。  
例子如下:
#!/usr/local/bin/perl  
use ExtUtils::Installed;
my $instmod = ExtUtils::Installed->new();
foreach my $module ($instmod->modules()) {  
my $version = $instmod->version($module) || "version unknow!";  
print "$module -- $version\n";
}  
运行后输出内容如下:   
Apache::DBI -- 0.87
Apache::DBILogConfig -- 0.01
Apache::DBILogger -- 0.93
AppConfig -- 1.52
Archive::Tar -- 0.22
BerkeleyDB -- 0.06
CGI -- 2.74
CPAN -- 1.59
CPAN::WAIT -- 0.27
Catalog -- 1.00
Compress::Zlib -- 1.11
Config::IniFiles -- 2.14
Convert::BER -- 1.26
Coy -- ???
Crypt::Rot13 -- 0.04
Crypt::SSLeay -- 0.16
DBI -- 1.14
[.....]  
ActivePerl使用PPM工具包,方法如下;  
C:\>ppm query
Archive-Tar [0.072 ] module for manipulation of tar archives.
Compress-Zlib [1.03 ] Interface to zlib compression library
DBI [1.13 ] Database independent interface for Perl
GD [1.25 ] Interface to Gd Graphics Library
HTML-Parser [2.23 ] SGML parser class
MIME-Base64 [2.11 ] Encoding and decoding of base64 strings
PPM [1.1.4 ] Perl Package Manager: locate, install, upgrade software  
pmtools工具包是由Tom Christiansen写了用来浏览和管理模块的工具,可以从这儿的到它http://language.perl.com/misc/pmtools-1.00.tar.gz ,它的一部分帮助文档:  
pmtools --一套用来帮助管理模块的小程序。里面的每一个程序都只做一件事情,其中包括一下小程序
pmpath - 显示模块的绝对路径
pmvers - 显示模块版本号
pmdesc - 得到关于模块的概述
pmall  - 显示所有已安装模块的pmdesc描述
pmdirs - 分行显示perl模块的路径
plxload - 显示程序运行时加载了什么文件
pmload - 显示模个模块编译时加载了什么文件  
pmexp - 显示模块的接口
pminst - 查找安装了哪些模块
pmeth - 列出一个类的所有方法
pmls - 详细列出模块路径
pmcat - 显示模块源码
pman - 显示模块的pod文档
pmfunc - 显示一个模块中函数的源码
podgrep - 在pod文档中查找  
pfcat - show pods from perlfunc  
podtoc - list table of contents of a podpage  
podpath - 显示pod文件的绝对路径
pods - 列出所有标准pod以及模块pod
sitepods - list only pods in site_perl directories  
basepods - list only normal "man-page" style pods  
faqpods - list only faq pods  
modpods - all module pods, including site_perl ones  
stdpods - list standard pods, not site_perl ones   
CPAN下的帮助
cpan> ?
Display Information(查看信息)
command  argument          description
a,b,d,m  WORD or /REGEXP/  about authors, bundles, distributions, modules(用与查看作者,bundles,分布,模块)
i        WORD or /REGEXP/  about anything of above(查看相关信息)
r        NONE              reinstall recommendations(建议需要重新安装的模块)
ls       AUTHOR            about files in the author's directory(列出在此作者目录下的文件)
Download, Test, Make, Install...
get                        download
make                       make (implies get)
test      MODULES,         make test (implies make)
install   DISTS, BUNDLES   make install (implies test)
clean                      make clean  (以上是动作,对模块的下载编译安装清除)
look                       open subshell in these dists' directories  
readme                     display these dists' README files   
#############################################################################################
get downloads a distribution file without further action. readme displays the README file of the associated distribution. Look gets and untars (if not yet done) the distribution file, changes to the appropriate directory and opens a subshell process in that directory.
##############################################################################################
Other
h,?           display this menu       ! perl-code   eval a perl command
o conf [opt]  set and query options   q             quit the cpan shell
reload cpan   load CPAN.pm again      reload index  load newer indices
autobundle    Snapshot                force cmd     unconditionally do cmd
一些辅助命令,如帮助,重新加载,退出,执行脚本,重新加载索引,强行执行......

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-156387-1-1.html 上篇帖子: Perl 时间函数 下篇帖子: AWStats是一个基于Perl的WEB日志分析工具。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表