如何解决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\"};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。