【问题标题】:What is the best way to share a config file between Perl scripts and bash scripts?在 Perl 脚本和 bash 脚本之间共享配置文件的最佳方式是什么?
【发布时间】:2012-10-08 11:09:56
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: perl shell configuration


    【解决方案1】:

    您不必拥有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};
    

    【讨论】:

    • 干杯@Zaid。那么使用 shell 包装器获取配置,然后在子 shell 中启动 Perl 脚本?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多