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是不是一样的!??
展开
 我来答
t990310348
2013-07-27 · TA获得超过158个赞
知道答主
回答量:38
采纳率:100%
帮助的人:25.9万
展开全部
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是在当前服务器上做事情。
手机用户59332
2013-07-24 · 贡献了超过318个回答
知道答主
回答量:318
采纳率:0%
帮助的人:81.4万
展开全部
安装了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>;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式