Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.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
Windows 从Perl中运行外部命令_Windows_Perl - Fatal编程技术网

Windows 从Perl中运行外部命令

Windows 从Perl中运行外部命令,windows,perl,Windows,Perl,我使用Doxygen生成HTML文档,然后运行Perl脚本来获取函数名 要运行Doxygen配置,我需要在cmd中运行Doxygen file\u name 但是我想从Perl运行所有东西 我试过这个密码 my $cmd = "perl -w otherscript.pl"; my $result = system("start $cmd"); 但它只是打开了一个cmd窗口。我需要直接通过Perl(不是Perl命令行,而是通过Perl IDE)执行cmd代码。有没有办法做到这一点?您可以使用系

我使用Doxygen生成HTML文档,然后运行Perl脚本来获取函数名

要运行Doxygen配置,我需要在cmd中运行
Doxygen file\u name

但是我想从Perl运行所有东西

我试过这个密码

my $cmd = "perl -w otherscript.pl";
my $result = system("start $cmd");

但它只是打开了一个cmd窗口。我需要直接通过Perl(不是Perl命令行,而是通过Perl IDE)执行cmd代码。有没有办法做到这一点?

您可以使用
系统
启动

根据您在评论中的描述,我认为是因为您在将配置文件提供给Doxygen时没有使用正确的转义方法,所以它引发了这样一个错误:

错误:未找到配置文件C:SERSGHOSHBCD

试一试

my $result = `doxygen C:\\Users\\aghosh\\abcd`;

在两个反斜杠中,前一个用于转义后一个,以便Windows将其识别为目录分隔符。

什么是
开始
??你是不是用backticks来代替系统调用的?“start”是指start cmd。它会弹出屏幕上的cmd窗口,为什么您希望它在其他窗口中运行?因为当我运行此命令时,我的$result=
doxygen C:\Users\aghosh\abcd
;或者我的$result=
doxygen“C:\Users\aghosh\abcd”
;编译器以错误形式给出错误:未找到配置文件C:SERSGHOSHBCD!但是从cmd来看,它工作得很好。我猜perl找不到文件路径是的。刚刚看到你的答案。你犯了一个愚蠢的错误,用“/”代替“\”同样有效。但我会使用“\\”因为它感觉更合适。谢谢