perl中的"递归"常量

Dav*_*d B 2 perl constants

在perl中定义另一个常量时,是否有一些有针对性的方法来使用一个常量?

显然,下列情况工作

use constant {
    MAIN_DIR   => "/path/to/some/dir",
    PROP_DIR => MAIN_DIR . "/sub_dir",
    PROP_FILE  => PROP_DIR . "/props.props",
};
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一想法是多use constant行,但它有点难看......

Eug*_*ash 5

仅供参考,您可以首先使用常量函数(这就是constantspragma的工​​作原理):

sub MAIN_DIR  () { "/path/to/some/dir"       }
sub PROP_DIR  () { MAIN_DIR . "/sub_dir"     }
sub PROP_FILE () { PROP_DIR . "/props.props" }
Run Code Online (Sandbox Code Playgroud)