Perl   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在Perl中有条件地使用模块?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_489_1@我想在Perl中做这样的事情:
$Module1="ReportHashFile1"; # ReportHashFile1.pm
$Module2="ReportHashFile2"; # ReportHashFile2.pm

if(Condition1)
{
  use $Module1;
}
elsif(Condition2)
{
  use $Module2;
}

ReportHashFile * .pm包含一个ReportHashFile包.

还要怎么引用一个数组里面的模块,基于动态模块名?

@Array= @$Module1::Array_inside_module;

有没有办法我可以实现这一点.某种编译器指令?

解决方法

您@R_97_9381@ if模块对此有用.

否则,基本思想是使用require,这在运行时发生,而不是使用,这在编译时发生.注意 ‘

BEGIN {
    my $module = $condition ? $Module1 : $Module2;
    my $file = $module;
    $file =~ s[::][/]g;
    $file .= '.pm';
    require $file;
    $module->import;
}

至于解决全局变量,如果您刚刚导出变量或将函数返回给调用者,则可能会更容易,您可以通过其不合格的名称使用它.否则还有可能使用一种方法,并将其称为$Module-> method_name.

或者,您可以使用符号参,如perlref中所述.然而,这通常是一个很好的代码气味.

@H_428_2@my @array = do { no Strict 'refs'; @{ ${ "${ModulE}::Array_inside_module" } }; };

大佬总结

以上是大佬教程为你收集整理的如何在Perl中有条件地使用模块?全部内容,希望文章能够帮你解决如何在Perl中有条件地使用模块?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。