在目录中使用模块
use lib 'includes';
use MySuperCoolModule;
use lib 'includes';
将相对目录 includes/
添加为 @INC
中的另一个模块搜索路径。假设你在 includes/
里面有一个模块文件 MySyperCoolModule.pm
,它包含:
package MySuperCoolModule;
如果需要,你可以在单个目录中将自己的模块分组,并使用一个 use lib
语句查找它们。
此时,使用模块中的子例程将需要在子例程名称前加上包名称:
MySuperCoolModule::SuperCoolSub_1("Super Cool String");
为了能够使用没有前缀的子例程,你需要导出子例程名称,以便调用它们的程序识别它们。导出可以设置为自动,因此:
package MySuperCoolModule;
use base 'Exporter';
our @EXPORT = ('SuperCoolSub_1', 'SuperCoolSub_2');
然后在 use
s 模块的文件中,这些子程序将自动可用:
use MySuperCoolModule;
SuperCoolSub_1("Super Cool String");
或者你可以将模块设置为有条件地导出子例程,因此:
package MySuperCoolModule;
use base 'Exporter';
our @EXPORT_OK = ('SuperCoolSub_1', 'SuperCoolSub_2');
在这种情况下,你需要显式请求在模块的脚本中导出所需的子例程:
use MySuperCoolModule 'SuperCoolSub_1';
SuperCoolSub_1("Super Cool String");