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;
以tar.gz文件的形式下载Perl模块。按照以下顺序安装任何 已作为Person.tar.gz 文件下载的 Perl模块 Person.pm。
tar xvfz Person.tar.gz cd Person perl Makefile.PL make make install
Perl解释器有一个目录列表,它在其中搜索模块(全局数组@INC)。