我有一个由bash脚本和Perl脚本组成的系统。
是否有一种安全的方法来指定Perl脚本和shell脚本使用的配置值?
我们需要两者,因为有一些共同的元素是简单的MY_VAR = toto声明以及Perl特定的配置值,例如:散列。
BTW我们的硬化Perl版本中没有可用的Env模块。
答案 0 :(得分:5)
您无需Env
即可访问环境变量。以下Env
文档摘录说明了这一点:
Perl将环境变量维护在名为
%ENV
的特殊哈希中。 对于此访问方法不方便的时候,Perl模块Env
允许将环境变量视为标量或数组 变量
%ENV
使得在Perl中构造“config”哈希变得非常简单。在下面的例子中,坚持%ENV
本身可能更清楚:
my %config;
my @env_vars = qw/ foo bar baz quux /;
@config{@env_vars} = @ENV{@env_vars};
答案 1 :(得分:3)
为什么不编写一个读取和写入配置文件的Perl脚本。您可以创建此代码,使其既可以作为Perl模块,也可以作为命令行中的脚本同时运行。 然后,您可以在Perl脚本内部以及shell脚本中调用此代码来获取和设置这些值。
您可以使用YAML作为格式,CPAN上有几个支持该模块的模块。 但是你可以选择任何你喜欢的东西,因为你可以完全控制,甚至以后的改变只会影响你的get& set-script。