Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading Perl与终端交互_Multithreading_Perl_Terminal - Fatal编程技术网

Multithreading Perl与终端交互

Multithreading Perl与终端交互,multithreading,perl,terminal,Multithreading,Perl,Terminal,我不确定我正在尝试做的事情是否可行,而且我对perl还相当陌生,所以我非常感谢您的帮助 我的perl应用程序将使用system()发出命令,以执行创建devel/工作区、集成、同步等操作。但显然,在创建devel之前,我无法集成,除非满足某些条件,否则我无法同步,依此类推。而且,当我的代码被同步并运行时,我不知道如何判断它是否完成 所以我想知道如何说(松弛伪代码): 系统(创建我的devel) 等待devel创建 系统(集成blah) 等待集成完成 系统(发射测试) 等待测试完成 等等 我研究了

我不确定我正在尝试做的事情是否可行,而且我对perl还相当陌生,所以我非常感谢您的帮助

我的perl应用程序将使用system()发出命令,以执行创建devel/工作区、集成、同步等操作。但显然,在创建devel之前,我无法集成,除非满足某些条件,否则我无法同步,依此类推。而且,当我的代码被同步并运行时,我不知道如何判断它是否完成

所以我想知道如何说(松弛伪代码):
系统(创建我的devel)
等待devel创建
系统(集成blah)
等待集成完成
系统(发射测试)
等待测试完成

等等

我研究了其他问题,并看到了使用forks的可能性,但我不熟悉如何在这种情况下编写代码


谢谢

通常情况下,Perl中的
系统
命令将等待您要求它运行的命令完成。这与在shell提示符下输入命令的工作方式完全相同,程序将运行,并且shell提示符仅在命令完成所有操作后才会出现。

Perforce有一个免费的Perl模块,可从下载,文档位于


但听起来您需要更多Perl多道程序设计和IPC方面的经验。你读过吗?

好奇你所说的“正常”是什么意思?如果这个过程需要我与之互动呢?这会改变什么吗?如果您熟悉perforce(或其他版本控制软件),并且正在解决此问题,则必须向其提供输入,如接受他们的、您的或合并的等。如果流程等待您与之交互,则您可以这样做。您的Perl脚本将不会继续运行,直到您调用的内容完成。我之所以说“正常”,是因为可以运行一个将自身置于后台并立即返回到Perl脚本的进程,但是您正在运行的进程不可能做到这一点。哦,如果我需要并行处理,我会按照您的建议做。例如,再次提到perforce,如果我想并行同步2个devel(因为这需要相当长的时间),我该如何做呢?不确定我是否应该提出一个新问题。根据您的操作系统,您可以通过在命令行末尾附加一个
&
将命令置于后台。例如,
system(“p4 sync&”)无法保证这会完全满足您的要求。非常感谢!:)我将按顺序让它工作,然后尝试一下“&”,看看它是否工作