在运行时加载模块

require Exporter;

这将确保 Exporter 模块在运行时加载(如果尚未导入)。 (另见: perldoc -f require 。)

注意: 大多数用户应该使用模块而不是模块 4。与 use 不同,require 不会调用模块的 import 方法,而是在运行时执行,而不是在编译期间执行。

如果在运行之前无法确定所需的模块,这种加载模块的方法很有用,例如使用插件系统:

package My::Module;
my @plugins = qw( One Two );
foreach my $plugin (@plugins) {
    my $module = __PACKAGE__ . "::Plugins::$plugin";
    $module =~ s!::!/!g;
    require "$module.pm";
}

这会尝试加载 My::Package::Plugins::OneMy::Package::Plugins::Two@plugins 当然应该来自一些用户输入或配置文件,这是有意义的。请注意替换运算符 s!::!/!g,它用斜杠替换每对冒号。这是因为只有当模块名称是一个单词时,才可以使用 use 中熟悉的模块名称语法加载模块。如果传递字符串或变量,则必须包含文件名。