在Perl脚本和bash脚本之间共享配置文件的最佳方法是什么?

时间:2012-10-08 11:09:56

标签: perl shell configuration

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

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

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

BTW我们的硬化Perl版本中没有可用的Env模块。

2 个答案:

答案 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。