如何在Perl中有条件地导入一个包?[英] How can I conditionally import a package in Perl?

问题描述

我有一个使用一个不太通用的模块的perl脚本,尽管功能有限,但我希望它可以在没有安装该模块的情况下使用.有可能吗?

我想到了这样的事情:

my $has_foobar;
if (has_module "foobar") {
    << use it >>
    $has_foobar = true;
} else {
    print STDERR "Warning: foobar not found. Not using it.\n";
    $has_foobar = false;
}

推荐答案

您可以使用需要在运行时加载模块, eval to Trap可能例外:

eval {
    require Foobar;
    Foobar->import();
};  
if ($@) {
    warn "Error including Foobar: $@";
}

另请参见perldoc 使用.

其他推荐答案

考虑如果 pragma.

use if CONDITION, MODULE => ARGUMENTS;

其他推荐答案

我建议使用 Module::Load ://google.com/search?q =%22intention++算法%22" rel =" nofollow noreferrer">明确意图.

编辑:忽略评论, module "> module "> >.

本文地址:https://www.itbaoku.cn/post/902356.html