Perl学习10之perl模块详解(一)
"pythonic生物人"的第16篇分享
摘要
Perl中模块的基础知识
手动编译安装perl模块
目录
查看某模块是否安装
列出所有模块
Perl脚本中导入模块
Perl脚本中导入模块指定的函数
将路径下模块添加到Perl环境变量
执行程序时显式指定模块查找路径
查看Perl模块安装目录
2、手动编译安装Perl模块
https://metacpan.org下载
linux终端安装
检查模块是否安装成功
模块路径添加到PERL5LIB环境变量中
方法一
方法二
正文开始啦
1、模块基础知识
查看某模块是否安装
/usr/bin/perldoc Llamas
/usr/bin/perldoc CGI
NAME
CGI - Handle Common Gateway Interface requests and responses
SYNOPSIS
列出所有模块
cpan -a
re 0.19_01 0.37 SHAY/perl-5.30.2.tar.gz
sigtrap 1.06 1.09 SHAY/perl-5.30.2.tar.gz
sort 2.01 2.04 SHAY/perl-5.30.2.tar.gz
strict 1.07 1.11 SHAY/perl-5.30.2.tar.gz
strictures::extra undef undef HAARG/strictures-2.000006.tar.gz
。。。。。。。。。。。。。。。。。。。。。。。
Perl脚本中导入模块
!/usr/bin/perl
use strict;
use warnings;
use File::Basename;#导入模块File::Basename
Perl脚本中导入模块指定的函数
!/usr/bin/perl
use strict;
use warnings;
以下两种方法等价
use File::Basename qw(basename dirname);
use File::Basename ('basename','dirname');
将路径下模块添加到Perl环境变量
手动安装的包,安装到了一个非默认的查找路径下,这时可以通过设置.bashrc 中PERL5LIB环境变量,perl会从这个环境变量中去查找模块,例如
export PERL5LIB=/home/perl_packge/lib/perl5:$PERL5LIB
执行程序时显式指定模块查找路径
perl -I/home/perl_packge/lib/perl5 test.pl
#I与路径之间不能有空格
查看Perl模块安装目录
Perl中Perl模块路径存储在变量@INC中。
输出@INC中默认存储的Perl模块路径:
perl -e '{print "$_\n" foreach @INC}'
以Parallel::ForkManager模块为例
https://metacpan.org下载
linux终端安装
wget https://cpan.metacpan.org/authors/id/Y/YA/YANICK/Parallel-ForkManager-2.02.tar.gz .
tar -zxvf Parallel-ForkManager-2.02.tar.gz
cd Parallel-ForkManager-2.02
ll
上图显示为Makefile.PL,使用make编译;有的软件为Build.PL,使用build编译。
perl Makefile.PL INSTALL_BASE= /home/perl_packge
make
cp lib/Parallel/ForkManager.pm blib/lib/Parallel/ForkManager.pm
cp lib/Parallel/ForkManager/Child.pm blib/lib/Parallel/ForkManager/Child.pm
Manifying 2 pod documents
make install
Manifying 2 pod documents
Installing /home/perl_packge/lib/perl5/Parallel/ForkManager.pm
Installing /home/perl_packge/lib/perl5/Parallel/ForkManager/Child.pm
Installing /home/perl_packge/man/man3/Parallel::ForkManager.3pm
Installing /home/perl_packge/man/man3/Parallel::ForkManager::Child.3pm
#红色部分为模块安装路径
检查模块是否安装成功
/usr/bin/perldoc Parallel::ForkManager
No documentation found for "Parallel::ForkManager".
原因是没有将模块安装的路径添加到PERL5LIB环境变量中。有两种解决办法如下:
模块路径添加到PERL5LIB环境变量中
方法一
vi ~/.bashrc
输入上面模块安装指定的路径输入,如下内容:
export PERL5LIB=/home/perl_packge/lib/perl5:$PERL5LIB
保存
source ~/.bashrc
/usr/bin/perldoc Parallel::ForkManager
方法二
#!/usr/bin/perl
use strict;
use warnings;
use lib qw(/home/perl_packge/lib/perl5/);#指定模块安装路径
use Parallel::ForkManager;