AppConfig perl模块是否支持扩展DEFAULT值?

时间:2015-12-07 21:29:47

标签: perl

让我们说我正在使用AppConfig来读取文件。我的文件有一个基目录,以及一个输入和输出目录。

我使用appconfig来读取此文件。当我定义这个文件时,我写了这样的东西:

 $conf = AppConfig->new({
          GLOBAL => {
               EXPAND -> AppConfig::EXPAND_VAR
          }
       });

$conf -> define("base_dir", {DEFAULT =>"/base"});
$conf -> define("output_dir", {DEFAULT => "/base/output"});
$conf -> define("input_dir", {DEFAULT => "/base/input"});

$conf -> file("config.cfg");

现在假设我有一个配置文件将base_dir定义为" foo"但无论出于何种原因忘记定义input_dir,如下所示:

我的文件通常看起来像这样

 base_dir = /foo/
 output_dir = $base_dir/output

我们将默认的input_dir用作" / base / input /"但我很可能希望我的输入目录为" / foo / input"只是忘了写那行。这是因为我对input_dir的默认值是如此硬编码。

我宁愿让输入和输出目录的默认值以他们依赖于base_dir的方式编写。像这样:

$conf -> define("base_dir", {DEFAULT =>"/base"});
$conf -> define("output_dir", {DEFAULT => "$base_dir/output"});
$conf -> define("input_dir", {DEFAULT => "$base_dir/input"});

有没有办法让它工作,这样appconfig会根据其状态中的其他值正确扩展默认值?无论配置文件的顺序如何,都是确定性的?

0 个答案:

没有答案