1

我对 Net::Appliance::Session 有疑问。我创建了一个会话,执行了我的命令。执行后它会提示我一些问题(是/否)。我想回答它,但没有找到办法。下面你可以看到我的试验:

$session->cmd($command);
$session->waitfor(Match=>'/.*yes*/');
$session->print("no");
$session->waitfor(Match=>'');
$session->print("y");

我不知道问题出在哪里。根据 CPAN 文档 Net::Telnet 有方法等待。但是 Session 文档告诉我们可以使用 waitfor()。另一件事是“cmd”方法有一个成员 Match,其中包括 waitfor() 的所有功能。所以我改变了我的代码,如下所示:

$session->cmd($command, Match=>'/.*yes*/');
$session->print("no");

执行此报告以下错误:

/usr/lib/perl5/vendor_perl/5.8.8/Net/Appliance/Session.pm 第 245 行的哈希分配中的奇数个元素。

有什么想法我该怎么做?为什么我会收到此错误消息?

提前致谢..

4

1 回答 1

0

来自meta::cpan的Net::Appliance::Session页面

要处理更复杂的交互,例如提示确认或可选参数的命令,您应该使用宏。这些在短语手册中设置并通过$s->macro($name)方法调用发出。有关详细信息,请参阅短语手册食谱手册页。

因此,您在短语手册中设置了一个宏(脚本调用和响应),然后告诉您的会话使用该宏。

于 2012-09-04T16:41:07.817 回答