父子进程之间的沟通 - Perl

时间:2017-07-14 09:20:38

标签: perl tcl fork exec system

我正在运行一个perl程序" a.pl"在终端中需要调用另一个程序" b.pl"然后将环境转换为tcl shell。该计划" b.pl"设置我必须在主程序中使用的环境变量" a.pl"之后我需要在" b.pl"创建的tcl环境中运行新命令。请参阅下面的示例

计划: a.pl

#!/usr/intel/bin/perl -w
    use strict;
    use warnings;

    #turns it to a tcl shell and sets environment variable VERSION
    system ("./b.pl");

    system ("source <tclExecutable> -version $VERSION");

第二个系统命令不会执行,直到我在终端中手动退出tcl shell。我看过叉子并打开烟斗,但我不确定该如何去做。我需要在第一个系统命令打开的tcl shell中执行第二个命令。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以运行b.pl&#34;内部&#34; a.pl使用require。它可以提供您想要的简单脚本。

a.pl

use strict;
use warnings;

our $Version;
require "/.../b.pl"; # full path to b.pl script
print "Version: $Version\n";

b.pl

use strict;
use warnings;

our $Version;
$Version = "YES!";