检查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>