+ -
当前位置:首页 → 问答吧 → 请教一个perl抓可执行程序print到屏幕的信息的问题

请教一个perl抓可执行程序print到屏幕的信息的问题

时间:2011-08-26

来源:互联网

用perl运行一个可执行程序
system("aaa.exe","test.in","test.out");
运行程序aaa test.in 和test.out是两个参数 
我现在想用perl来抓aaa程序运行后打印到屏幕上的信息,请问怎么抓,试了好几个都有问题。

my $fun = sub{return system("aaa.exe","test.in","test.out");};
&{$fun};
open (OPP,'<',$fun)
while(<OPP>){
  pring "$_\n";
}
#总是报句柄已经关闭 也就是说 没有成功打开$fun。 请问哪里错了!
或者有其他方法可以获取到吗?谢谢了

作者: xunis   发布时间: 2011-08-26

$fun是一个函数。为啥你觉得可以打开这个函数?

作者: iambic   发布时间: 2011-08-26

那是把他的结果赋给了函数 这个方法是我改的 别人给我提示了  
抱歉 perl不熟悉 还麻烦赐教
引用 1 楼 iambic 的回复:
$fun是一个函数。为啥你觉得可以打开这个函数?

作者: xunis   发布时间: 2011-08-26

你的哪句代码是“把他的结果赋给了函数”?什么叫“把结果赋给了函数”?

不管你对语言都多熟悉。你写出来的代码就应该是自己理解了的代码。如果你自己都想不通每句代码的意思,能正确执行就见鬼了。

想拿程序的输出用管道或者``。可以翻下perl cookbooke Chapter 16. Process Management and Communication

作者: iambic   发布时间: 2011-08-26

非常感谢你的训斥 用``和管道都可以解决了 谢谢 

my $file = `aaa.exe args1 args2`;
print $file;



open (FH,"aaa.exe args1 args2|") 
while (<FH>){print $_;}

也同时感谢c++_cracker007



引用 3 楼 iambic 的回复:
你的哪句代码是“把他的结果赋给了函数”?什么叫“把结果赋给了函数”?

不管你对语言都多熟悉。你写出来的代码就应该是自己理解了的代码。如果你自己都想不通每句代码的意思,能正确执行就见鬼了。

想拿程序的输出用管道或者``。可以翻下perl cookbooke Chapter 16. Process Management and Communication

作者: xunis   发布时间: 2011-08-26