【问题标题】:Config::Simple and constant assignation in perlConfig::perl 中的简单常量赋值
【发布时间】:2011-08-05 17:06:52
【问题描述】:

我正在使用Config::Simple 模块和constant pragma。我正在解析配置文件并将值设置为常量。测试配置文件 (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.

哈希包含信息,您可以在第一个print 中看到它,但在constant 语句中分配时未设置

我在代码上做错了什么??

谢谢

【问题讨论】:

    标签: perl constants config configuration-files ini


    【解决方案1】:

    “使用”发生在编译时,调用 import_from() 发生在运行时(即使用之后)。

    将对 import_from 的调用包装在 BEGIN 块中:

    my %Cnf;
    BEGIN {
        Config::Simple->import_from('test.ini', \%Cnf);
    }
    use constant TEST => scalar $Cnf{"default.POP3SERVER"};
    

    【讨论】:

      猜你喜欢
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 2020-11-16
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多