开发者

"Recursive" constants in perl

Is there some conviented way to use one constant when defining another constant in perl?

The following obviously does not work

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

The开发者_如何学JAVA only think I could think of is multiple use constant lines, but it's a bit ugly...


FYI, you can use constant functions in the first place (that's how the constants pragma works):

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


According to perldoc there is no way around that. At least not with use constants.

I'd go with using multiple use statements.


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

PBP (Perl Best Practices) recommends using Readonly

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜