使用open()在Perl中执行exe?

时间:2013-04-30 09:00:48

标签: perl

我无法理解正在执行exe的Perl脚本的一部分。

open(SYSTEM, "$appl 2>&1 |") || die "$!: $appl";

根据this我可以理解它正在执行一个exe(变量$appl存储exe的路径及其args),但我不理解2>&1部分。 AFAIK不是我们的exe所要求的,所以它必须是一些标准惯例。知道这是做什么的吗?

PS:我们的Perl有点旧,因此是open()的旧语法。

2 个答案:

答案 0 :(得分:3)

您可以在此处看到2>&1的简要说明:In the shell, what does " 2>&1 " mean?

基本上它告诉命令行将EXE引发的任何错误消息重定向到标准输出,其中perl脚本可以获取输出。

如果没有这个,或者从命令行运行EXE,它通常会将错误引导到单独的输出(STDERR)到信息消息出现的位置(STDOUT)。

答案 1 :(得分:2)

STDERR重定向到STDOUT

  

在程序启动时,与之关联的整数文件描述符   streams stdin,stdout和stderr是0,1和2

Unix File Descriptors

相关问题