找出目前已經安裝哪些modules的方法...

找出目前已經安裝哪些modules的方法...

find `perl -e 'print "@INC"'` -name '*.pm' -print

你可以在unix like的os下輸入上面指令...後面加上 |grep..
就可以過濾出你要的pm了.....

至於要確認是不是真的有安裝某個module..
則請輸入
perl -e "use XXXX;";
如果有Error就是沒有安裝該module...
老大的帖子,我先顶了。
Is there way to tell the version of module?
你可以試著用
grep 'VERSION' XXX.pm
把VERSION那一行找出來..
就如我前面寫的..
find `perl -e 'print "@INC"'` -name '*.pm' -print |grep Socket
然後..
grep  VERSION /xxx/xxx/xxx.pm
就可以看到Version...
其實一般$VERSION都會declare成our....屬於class的var...
只是我試過幾種方法都沒辦法直接顯示..所以只好這麼麻煩了..
也許別人會有辦法..:)
perldoc perllocal
可以看到版本
使用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) || "???";


print "$module -- $version\n";
}


运行后输出内容如下:


Apache:BI -- 0.87
Apache:BILogConfig -- 0.01
Apache:BILogger -- 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
呵呵,用ExtUtils::Installed并不能找到Prima模块,俺在新闻组问了也没人答疑,哪位知道怎么回事?谢谢
會不會Prima的內容跟標準的perl module不一樣..
所以取不出來?
作个标记,以后好查找