什么是Perl模块?

Perl模块是在库文件中定义的可重用软件包,该文件的名称与扩展名为.pm的软件包的名称相同。

一个名为Foo.pm的Perl模块文件可能包含这样的语句。

#!/usr/bin/perl
package Foo;
sub bar {
   print "Hello $_[0]\n"
}
sub blat {
   print "World $_[0]\n"
}
1;

关于Perl模块的几点要点

  • 需要和 使用的功能 将加载模块。

  • 两者都使用@INC中的搜索路径列表来查找模块。

  • 这两个函数 都需要并 使用调用 eval函数来处理代码。

  • 1; 在底部导致eval评估为TRUE(因此不会失败)。

需求函数

可以通过调用require函数来加载模块 ,如下所示:

#!/usr/bin/perl
require Foo;
Foo::bar( "a" );
Foo::blat( "b" );

您必须已经注意到,子例程名称必须完全合格才能调用它们。最好将子例程 bar和 blat导入到我们自己的命名空间中,这样我们就不必使用Foo ::限定符。

使用功能

可以通过调用use函数来加载模块 。

#!/usr/bin/perl
use Foo;
bar( "a" );
blat( "b" );

注意,我们不必完全限定包的函数名。如果在模块内添加了一些声明,则use函数将从模块中导出符号列表。

require Exporter;
@ISA = qw(Exporter);

然后,通过填充名为@EXPORT的列表变量提供符号列表(标量,列表,哈希,子例程等):例如-

package Module;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(bar blat);
sub bar { print "Hello $_[0]\n" }
sub blat { print "World $_[0]\n" }
sub splat { print "Not $_[0]\n" } # Not exported!
1;

安装Perl模块

以tar.gz文件的形式下载Perl模块。按照以下顺序安装任何 已作为Person.tar.gz 文件下载的 Perl模块 Person.pm

tar xvfz Person.tar.gz
cd Person
perl Makefile.PL
make
make install

Perl解释器有一个目录列表,它在其中搜索模块(全局数组@INC)。