“递归” Perl 中的常量

发布于 2024-09-14 04:02:11 字数 314 浏览 4 评论 0原文

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

下面的内容显然不起作用工作

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

我唯一能想到的是多个useconstant行,但它有点难看......

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...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦里°也失望 2024-09-21 04:02:11

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

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

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" }
衣神在巴黎 2024-09-21 04:02:11

根据 perldoc 没有办法解决这个问题。至少对于使用常量来说是这样。

我会选择使用多个 use 语句。

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

I'd go with using multiple use statements.

尽揽少女心 2024-09-21 04:02:11
$ perl -wle 'use Readonly; Readonly my $FOO => "foo"; Readonly my $FOOBAR => $FOO . "bar"; print $FOOBAR;'
foobar

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

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

PBP (Perl Best Practices) recommends using Readonly

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文