当前位置:  开发笔记 > 编程语言 > 正文

如何在Perl中运行子命令来正确导入环境?

如何解决《如何在Perl中运行子命令来正确导入环境?》经验,为你挑选了1个好方法。

在从子命令导入环境时,我想将从bash脚本导出的所有环境变量添加到散列中.当program运行时,它将设置一些变量并导出它们.我想将这些变量保存在Perl脚本中以供日后使用.但是我不想采用子命令中定义的bash函数.目前,我有一个块像:

foreach (`program; env`)
{
    next if /^\(\)/;
    my ($a, $b) = split("=", $_);
    if( /^(\w+)=(.*)$/ ) {
        $hash{$1} = $2;    
    }
}

有一个更好的方法吗?我不确定匹配initial()是否安全.用于处理环境变量中的换行符的加分点,我现在只是闭上眼睛.



1> jeje..:

你想要的是: Shell-EnvImporter

一个例子:

  use Shell::EnvImporter;

  # Import environment variables exported from a shell script
  my $sourcer  = Shell::EnvImporter->new(
                   file => $filename,
                 );


  my $result = $sourcer->run() or die "Run failed: $@";

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有