perl的问题!!!急急急
perl中使用expect$exp->send($string);$s=$exp->before();和直接使用$s=readpipe($string);得到的s是不是一...
perl中 使用 expect
$exp->send($string);
$s = $exp->before();
和直接使用
$s = readpipe($string);
得到的s是不是一样的!?? 展开
$exp->send($string);
$s = $exp->before();
和直接使用
$s = readpipe($string);
得到的s是不是一样的!?? 展开
2个回答
展开全部
expect一般这样用:
$exp->send($string);
$exp->expect(
$timeout,
[ qr/expect_something/i, sub { do_something);exp_continue; }],
);
$s = $exp->before(); # $s就得到 匹配expect_somthing之前的字符串,如果匹配失败,得到所有的输出。
# readpipe 是用来执行命令,得到结果用的,效果类似函数system和exec
$s = readpipe($string);
#如:
@result = readpipe( "ls -l /tmp" );
#result就得到了ls -l /tmp的输出
#所以你的问题的结果是:
# 可能不一样, 因为expect一般是spawn一个进程,到远程服务器上做事情
# readpipe是在当前服务器上做事情。
展开全部
安装了active perl5.88就可以运行.pl文件了,无需安装其它程序,运行的办法是执行CMD命令:c:\perl\bin\perl.exe D:\test.pl上面的命令表示你的perl安装在c:\perl目录下需要执行d:\test.pl,这只是举例,你使用时要换为其它的相应文件夹。当然,可以在我的电脑上点鼠标右键,在高级的环境变量里面修改PATH,把c:\perl\bin\添加到PATH里面,注意分号分隔,那么以后就可以直接使用perl.exe,而不需要c:\perl\bin\了。当然也可以在.pl文件上双击执行,如果双击说没有找到相应的程序,你就选择其它打开方式,浏览一下perl.exe文件即可ae这样以后就可以双击.pl文件执行dhlp但是当文件有错误的时候,一闪就过了,看不见信息perl.exe 和perl5.88.exe完全相同6284我用FC比较没有发现差异sw你始终使用perl.exe吧3这样是个好习惯。不知道你是否满意,如果不习惯使用CMD命令提示符,可能是无法满意的,不过那我也没有办法,高深的东西都是离不开DOS的。补充:要调试程序就必须在CMD下运行呀,你偏要这样,当然没办法看就错误信息了。如果你的程序确保没有错误,那么开业在程序最后添加下面的一个语句暂停关闭窗口:=<stdin>;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询