Config :: perl中的简单和常量分配

|| 我正在使用
Config::Simple
模块和
constant
编译指示。我正在解析配置文件并将值设置为常量。测试配置文件(
test.ini
)包含:
POP3SERVER=\'192.168.1.1\'
当我运行以下perl语句时:
use warnings;
use strict;

use Config::Simple;
my %Cnf;
Config::Simple->import_from(\'test.ini\', \\%Cnf);
use constant TEST => scalar $Cnf{\"default.POP3SERVER\"};
print $Cnf{\"default.POP3SERVER\"},\"\\n\";
print TEST . \"\\n\";
我得到以下几行:
192.168.1.1
Use of uninitialized value in concatenation (.) or string at ./algo.pl line 10.
哈希包含信息,您可以在第一个“ 6”中看到它,但是在“ 1”语句中分配时未设置 我在代码上做错了什么? n     
已邀请:
\“ use \”发生在编译时,调用import_from()发生在运行时(即使用后)。 将对import_from的调用包装在BEGIN块中:
my %Cnf;
BEGIN {
    Config::Simple->import_from(\'test.ini\', \\%Cnf);
}
use constant TEST => scalar $Cnf{\"default.POP3SERVER\"};
    

要回复问题请先登录注册