Perl 教程 之 Perl 包和模块 4
Perl 包和模块
Require 和 Use 函数
模块可以通过 require 函数来调用,如下所示:
实例
!/usr/bin/perl
require Foo;
Foo::bar( "a" );
Foo::blat( "b" );
也可以通过 use 函数来引用:
实例
!/usr/bin/perl
use Foo;
bar( "a" );
blat( "b" );
我们注意到 require 引用需要使用包名指定函数,而 use 不需要,二者的主要区别在于:
1、require用于载入module或perl程序(.pm后缀可以省略,但.pl必须有)
2、Perl use语句是编译时引入的,require是运行时引入的
3、Perl use引入模块的同时,也引入了模块的子模块。而require则不能引入,要在重新声明
4、USE是在当前默认的@INC里面去寻找,一旦模块不在@INC中的话,用USE是不可以引入的,但是require可以指定路径
5、USE引用模块时,如果模块名称中包含::双冒号,该双冒号将作为路径分隔符,相当于Unix下的/或者Windows下的\。 如:
use MyDirectory::MyModule
通过添加以下语句 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;