我无法理解正在执行 exe 的 Perl 脚本的一部分。
open(SYSTEM, "$appl 2>&1 |") || die "$!: $appl";
据此我可以理解它正在执行一个exe(变量$appl
存储exe的路径及其args),但我不明白这部分2>&1
。AFAIK 它不是我们的 exe 所需的 arg,因此它必须是一些标准约定。知道那是做什么的吗?
PS:我们的 Perl 有点旧,因此 open() 的语法较旧。
您可以看到2>&1
这里的简要说明:在 shell 中,“2>&1”是什么意思?
基本上,它告诉命令行将 EXE 引发的任何错误消息重定向到 perl 脚本可以获取输出的标准输出。
如果没有这个,或者从命令行运行 EXE 时,它通常会将错误定向到单独的输出 (STDERR) 到出现信息消息的输出 (STDOUT)。