2

我有一个由 bash 脚本和 Perl 脚本组成的系统。

是否有一种安全的方法来指定 Perl 脚本和 shell 脚本都使用的配置值?

我们需要两者,因为有一些共同的元素是简单的 MY_VAR=toto 声明以及 Perl 特定的配置值,例如哈希。

顺便说一句,我们的强化 Perl 构建中没有可用的 Env 模块。

4

2 回答 2

5

您不必必须Env能够访问环境变量。以下文档摘录Env清楚地说明了这一点:

Perl 在一个名为%ENV. 因为当这种访问方法不方便时,Perl 模块Env 允许将环境变量视为标量或数组变量。

%ENV使得在 Perl 中构建“配置”哈希变得非常简单。在下面的例子中,坚持自己可能会更清楚%ENV

my %config;
my @env_vars = qw/ foo bar baz quux /;
@config{@env_vars} = @ENV{@env_vars};
于 2012-10-08T11:34:09.310 回答
3

为什么不编写一个读取和写入配置文件的 Perl 脚本。您可以制作此代码,使其同时作为 Perl 模块和命令行脚本运行。然后,您可以在 Perl 脚本和 shell 脚本中调用此代码来获取和设置这些值。

你可以使用 YAML 作为一种格式,CPAN 上有几个模块支持这种格式。但是你可以选择你喜欢的任何东西,因为你有完全的控制权,甚至以后的改变只会影响你的 get&set-script。

于 2012-10-08T11:57:34.507 回答