什么是 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 模块的一些重要要点

  • 函数 requireuse 将加载模块。
  • 两者都使用 @INC 中的搜索路径列表来查找模块。
  • 这两个函数 requireuse 都调用 eval 函数来处理代码。
  • 底部的 1; 使 eval 的结果为 TRUE(因此不会失败)。

Require 函数

可以通过如下方式调用 require 函数加载模块:

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

您可能已经注意到,必须使用完全限定的名称来调用子程序。最好将子程序 barblat 导入到我们自己的命名空间中,这样我们就不必使用 Foo:: 限定符。

Use 函数

可以通过调用 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)。

更新于: 2019-12-02

184 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.