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

在Perl脚本和bash脚本之间共享配置文件的最佳方式是什么?,perl,shell,configuration,Perl,Shell,Configuration,我有一个由bash脚本和Perl脚本组成的系统 是否有一种安全的方法来指定Perl脚本和shell脚本都使用的配置值 我们需要这两者,因为有一些公共元素,它们是简单的MY_VAR=toto声明以及Perl特定的配置值,例如散列 顺便说一句,我们的强化Perl构建中没有可用的Env模块。您不必能够访问环境变量。以下摘自Env文档的内容说明了这一点: Perl在一个名为的特殊散列中维护环境变量。 对于这种访问方法不方便的情况,Perl模块Env 允许将环境变量视为标量或数组 变量 %ENV使得在Pe

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

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

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

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

您不必能够访问环境变量。以下摘自
Env
文档的内容说明了这一点:

Perl在一个名为的特殊散列中维护环境变量。 对于这种访问方法不方便的情况,Perl模块
Env
允许将环境变量视为标量或数组 变量

%ENV
使得在Perl中构造“config”哈希非常简单。在下面的示例中,坚持使用
%ENV
本身可能会更清楚:

my %config;
my @env_vars = qw/ foo bar baz quux /;
@config{@env_vars} = @ENV{@env_vars};

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

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

Cheers@Zaid。那么,使用shell包装器来获取配置的源代码,然后在子shell中启动Perl脚本?