Reputation: 30018
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 only think I could think of is multiple use constant
lines, but it's a bit ugly...
Upvotes: 2
Views: 149
Reputation: 1203
$ perl -wle 'use Readonly; Readonly my $FOO => "foo"; Readonly my $FOOBAR => $FOO . "bar"; print $FOOBAR;'
foobar
PBP (Perl Best Practices) recommends using Readonly
Upvotes: 1
Reputation: 150128
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" }
Upvotes: 5