perl中的“递归”常量

时间:2010-08-10 07:27:25

标签: perl constants

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

以下显然工作

use constant {
    MAIN_DIR   => "/path/to/some/dir",
    PROP_DIR => MAIN_DIR . "/sub_dir",
    PROP_FILE  => PROP_DIR . "/props.props",
};

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

3 个答案:

答案 0 :(得分:5)

仅供参考,您可以首先使用常量函数(这就是constants pragma的工​​作方式):

sub MAIN_DIR  () { "/path/to/some/dir"       }
sub PROP_DIR  () { MAIN_DIR . "/sub_dir"     }
sub PROP_FILE () { PROP_DIR . "/props.props" }

答案 1 :(得分:3)

根据perldoc,没有办法解决这个问题。至少不在use constants

我会使用多个use语句。

答案 2 :(得分:1)

$ perl -wle 'use Readonly; Readonly my $FOO => "foo"; Readonly my $FOOBAR => $FOO . "bar"; print $FOOBAR;'
foobar

PBP(Perl最佳实践)建议使用Readonly