Perl Net::SSH::Expect 1.09中是否有一个等效的;收集“U出口”代码;

Perl Net::SSH::Expect 1.09中是否有一个等效的;收集“U出口”代码;,perl,perl-module,cgi-bin,perlnetssh,Perl,Perl Module,Cgi Bin,Perlnetssh,我发现了这个链接:但它对我没有帮助。当我想从远程运行的命令中获取退出状态代码时,我遇到了Net::SSH::Expect 0.08的cpan文档,其中包含“collect_exit_code”和“last_exit_code”方法,这正是我今天想要使用的方法,但是,在运行1.09时,我找不到合适的替代方法 我希望保持简单,例如: $ssh_devel_exp->collect_exit_code(1); $ssh_devel_exp->send("sudo make"); if ($

我发现了这个链接:但它对我没有帮助。当我想从远程运行的命令中获取退出状态代码时,我遇到了Net::SSH::Expect 0.08的cpan文档,其中包含“collect_exit_code”和“last_exit_code”方法,这正是我今天想要使用的方法,但是,在运行1.09时,我找不到合适的替代方法

我希望保持简单,例如:

$ssh_devel_exp->collect_exit_code(1);
$ssh_devel_exp->send("sudo make");
if ($ssh_devel_exp->last_exit_code()) { etc. and so forth... };
但是,如果没有类似的方法,我想不出一个简单的方法来获取通过netexpect运行命令时的退出状态

我不相信改用织物是解决这个问题的办法;这是一个perl应用程序,我需要坚持使用perl


提前感谢。

您是否尝试调用底层expect对象

$ssh_devel_exp->{expect}->collect_exit_code(1);
$ssh_devel_exp->send("sudo make");
if ($ssh_devel_exp->{expect}->last_exit_code()) { etc. and so forth... };

如果没有其他帮助,您可以创建一个小的shell脚本来执行您的命令,并在stderr上报告exitstatus。

use!嗯,这看起来很有希望。我得试一试。谢谢嗯,也许我应该包括对象的创建……我这样创建对象:
my$ssh\u devel\u exp=Net::ssh::Expect->new(host=>$devel\u server,user=>$user,password=>$PASS\M,raw\u pty=>1)使“调用”(“->{expect}”)多余,对吗?当我尝试添加时,我得到:ERROR:在类中找不到方法“collect\u exit\u code”,除了在/usr/lib/cgi-bin/menu.pl第217行。