首页 > 解决方案 > 设置 perl 导出的常量

问题描述

我正在使用一个模块(Mail::SPF::Iterator),它导出一个常量以启用调试输出:

use Mail::SPF::Iterator Debug =>1; # enable debugging

如何稍后在代码中设置此常量,例如根据条件?

if ( my condition ) {
   # set Debug to 1
}

标签: perl

解决方案


使用的参数只是import所用包的方法的参数。该use命令在编译时运行,因此要么使用BEGIN

BEGIN {
    my $do_i_want_to_debug = ... ;
    use Mail::SPF::Iterator Debug => $do_i_want_to_debug;
}

或者,如果您不知道在编译时确定值所需的一切,请使用require而不是use

my $do_i_want_to_debug = ... ;
require Mail::SPF::Iterator;
Mail::SPF::Iterator->import(Debug => $do_i_want_to_debug);

推荐阅读