检查Perl环境已安装了哪些包的方法。
方法一:
运行命令 perldoc perllocal即列出所有包的详细信息。
[root@subv2 ~]# perldoc perllocal
PERLLOCAL(1) User Contributed Perl Documentation PERLLOCAL(1)
Mon Sep 28 19:46:52 2009: "Module" AppConfig
· "installed into: /usr/lib/perl5/site_perl/5.8.8"
· "LINKTYPE: dynamic"
· "VERSION: 1.66"
· "EXE_FILES: "
Mon Sep 28 19:47:13 2009: "Module" Template
· "installed into: /usr/lib/perl5/site_perl/5.8.8"
· "LINKTYPE: dynamic"
· "VERSION: 2.22"
· "EXE_FILES: bin/tpage bin/ttree"
Mon Sep 28 19:47:24 2009: "Module" Email::MIME::Encodings
· "installed into: /usr/lib/perl5/site_perl/5.8.8"
· "LINKTYPE: dynamic"
......
方法二:
运行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\n", $_, $ver);
}
检查包的路径 perldoc -l <package name>
[root@subv2 ~]# perldoc -l CGI
/usr/lib/perl5/5.8.8/CGI.pm
[root@subv2 ~]#
查看每个包的详情perl doc <package name>
[root@subv2 ~]# perldoc -l CGI
/usr/lib/perl5/5.8.8/CGI.pm
[root@subv2 ~]# perldoc CGI
CGI(3) User Contributed Perl Documentation CGI(3)
NAME
CGI - Simple Common Gateway Interface Class
SYNOPSIS
# CGI script that creates a fill-out form
# and echoes back its values.
use CGI qw/:standard/;
print header,
start_html(’A Simple Example’),
h1(’A Simple Example’),
start_form,
"What’s your name? ",textfield(’name’),p,
"What’s the combination?", p,
checkbox_group(-name=>’words’,
-values=>[’eenie’,’meenie’,’minie’,’moe’],
-defaults=>[’eenie’,’minie’]), p,
"What’s your favorite color? ",
另外,
Perl环境有一些常用配置。
Perl的配置主要就是cpan,对于CPAN的配置,都存放在~/.cpan这个目录中。可以删除这个目录然后运行cpan来重新配置。
[root@subv2 .cpan]# cpan
cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support enabled
cpan> help
Display Information
command argument description
a,b,d,m WORD or /REGEXP/ about authors, bundles, distributions, modules
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
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
cpan> o conf
CPAN::Config options from /usr/lib/perl5/5.8.8/CPAN/Config.pm:
commit Commit changes to disk
defaults Reload defaults from disk
init Interactive setting of all options
applypatch
auto_commit 0
build_cache 10
build_dir /root/.cpan/build
build_dir_reuse 0
build_requires_install_policy yes
bzip2 /usr/bin/bzip2
cache_metadata 1
check_sigs 0
colorize_output 0
commandnumber_in_prompt 1
connect_to_internet_ok 1
cpan_home /root/.cpan
dontload_hash
ftp /usr/kerberos/bin/ftp
ftp_passive 1
ftp_proxy
getcwd cwd
gpg /usr/bin/gpg
gzip /bin/gzip
halt_on_failure 0
histfile /root/.cpan/histfile
histsize 100
http_proxy http://10.99.60.201:8080
inactivity_timeout 0
index_expire 1
inhibit_startup_message 0
keep_source_where /root/.cpan/sources
load_module_verbosity none
make /usr/bin/make
make_arg
make_install_arg
make_install_make_command /usr/bin/make
makepl_arg
mbuild_arg
mbuild_install_arg
mbuild_install_build_command ./Build
mbuildpl_arg
ncftp
ncftpget
no_proxy
pager /usr/bin/less
patch /usr/bin/patch
perl5lib_verbosity none
prefer_external_tar 1
prefer_installer MB
prefs_dir /root/.cpan/prefs
prerequisites_policy ask
proxy_pass 1qaz@WSX
proxy_user wangyzj
scan_cache atstart
shell /bin/bash
show_unparsable_versions 0
show_upload_date 0
show_zero_versions 0
tar /bin/tar
tar_verbosity none
term_is_latin 1
term_ornaments 1
test_report 0
trust_test_report_history 0
unzip /usr/bin/unzip
urllist
http://mirrors.sohu.com/CPAN/
use_sqlite 0
version_timeout 15
wget /usr/bin/wget
yaml_load_code 0
yaml_module YAML
cpan>
cpan> o conf http_proxy ""
http_proxy
cpan> o conf proxy_pass ""
proxy_pass
cpan> o conf proxy_user ""
proxy_user
cpan> o conf commit
commit: wrote /usr/lib/perl5/5.8.8/CPAN/Config.pm
对于web的cgi程序,可以使用下面的脚本来检查:
#!C:/strawberry/perl/bin/perl.exe
##
## printenv -- demo CGI program which just prints its environment
##
print "Content-type: text/plain; charset=iso-8859-1\n\n";
foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var};
$val =~ s|\n|\\n|g;
$val =~ s|"|\\"|g;
print "${var}=\"${val}\"\n";
}
print "\n\@INC = \n";
print join("\n",@INC);
在Apache的配置中,可以配置增加perl的环境变量。
<Directory "/opt/bugzilla-4.4.11">
AddHandler cgi-script .cgi
Options Indexes ExecCGI FollowSymLinks
SetEnv PERL5LIB /opt/bugzilla-4.4.11:/opt/bugzilla-4.4.11/lib:.
DirectoryIndex index.cgi
AllowOverride None
Order allow,deny
Allow from all
</Directory>