2012-09-04 41 views
1

我有Net :: Appliance :: Session的問題。我創建了一個會話,執行了我的命令。執行後它會提示我一些問題(是/否)。我想回答,但沒有找到如何去做的方法。下面你可以看到我的試驗:Perl Net :: Appliance :: Session waitfor?

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

我不知道問題在哪裏。根據CPAN文檔Net :: Telnet有方法waitfor。但會話文檔告訴我們可以使用waitfor()。另一件事說,有方法「CMD」有一個成員匹配,其中包括waitfor()的所有功能。所以我改變了我的代碼如下圖所示:

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

執行該報告如下錯誤:

Odd number of elements in hash assignment at /usr/lib/perl5/vendor_perl/5.8.8/Net/Appliance/Session.pm line 245.

有什麼想法,我該怎麼辦呢?爲什麼我會收到此錯誤消息?

在此先感謝..

回答

0

Net::Appliance::Session頁面在meta::cpan

要處理更復雜的交互,例如命令其提示確認或可選參數,你應該使用宏。這些設置在短語手冊中並通過$s->macro($name)方法調用發佈。有關更多詳細信息,請參見PhrasebookCookbook手冊頁。

因此,您在短語手冊中設置了一個宏(腳本化的調用和響應),然後告訴您的會話使用該宏。

+0

你能給我一些精確的代碼示例嗎?因爲我已經閱讀了所有的文件,但是我不能把它們放在一起。提前致謝。 – mtndesign

+0

我沒有代碼可以告訴你。你有沒有設置一個短語手冊?你用macro()方法調用了這個短語嗎? –