开发者

"Recursive" constants in perl

开发者 https://www.devze.com 2023-01-11 09:17 出处:网络
Is there some conviented way to use one constant when defining another constant in perl? The following obviously does not work

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

精彩评论

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