Perl使用system()执行exe?

时间:2016-01-19 05:41:37

标签: perl

我无法使用perl代码运行exe

my $XSD = "C:\\IParser\\Iparser\.exe --xsds \"$dir\\$out\_xsd\.xml\"";
system($XSD);

以上$xsd运行在commend提示它将执行正常。当我运行perl源代码时,它将错误显示为

the handle is invalid

我不知道这背后的问题是什么。请帮忙。

1 个答案:

答案 0 :(得分:0)

这可能是因为STDIN,STDOUT和STDERR(或其中任何一个)的闭合句柄。最有可能的情况是,如果您将其作为守护程序或服务运行。

在运行流程之前尝试打开标准句柄(假设您根据路径在窗口上):

open(STDIN, "<NUL");
open(STDOUT, ">NUL");
open(STDERR, ">NUL");