无法使用perl Net::Appliance::会话库重新加载Cisco设备

无法使用perl Net::Appliance::会话库重新加载Cisco设备,perl,cisco,Perl,Cisco,我正在尝试使用net::appliance::session library重新启动Cisco设备。但即使代码没有给出错误,设备也不会重新启动。这是我正在使用的两行代码: $session->cmd(String => 'Reload',Match => ['/Proceed/'], ); $session->cmd(String => "\n", Match => ['//'],); 在Cisco shell中,重载命令如下所示: test#reload

我正在尝试使用net::appliance::session library重新启动Cisco设备。但即使代码没有给出错误,设备也不会重新启动。这是我正在使用的两行代码:

$session->cmd(String => 'Reload',Match => ['/Proceed/'], );
$session->cmd(String => "\n", Match => ['//'],);
在Cisco shell中,重载命令如下所示:

test#reload
Proceed with reload? [confirm]
Connection closed by foreign host.
也告诉我这样做。我认为回车和确认对话框有问题。因为当我尝试创建目录时,它工作正常:

$session->cmd(String => 'mkdir',Match => ['/Create dire.*/'] );
$session->cmd(String => 'test',Match => ['//'] );
这在思科壳牌中的等效性:

test#mkdir
Create directory filename []? test
Created dir flash:test
但是当我试图删除这个需要回车确认的目录时,脚本再次失败

$session->cmd(String => 'rmdir asd',Match => ['/Remove directory.*/'] );     
$session->cmd(String => '\n' ,Match => ['/Delete flash.*/'] );
$session->cmd(String => '\n');
Cisco中的等价物是:

test#rmdir test
Remove directory filename [test]? 
Delete flash:test? [confirm]
Removed dir flash:test
所以我认为问题不在于重载命令。但问题是发送回车作为确认。我尝试了
\n
\r
\n\r
\r\n
和空字符串,但它们不起作用


有什么想法吗?

也许Cisco设备区分大小写?在本例中,您在Perl代码中使用了“reload”和“reload”

也许你可以试试这个:

$session->say('reload'); $session->gather(); $session->say('confirm');
$session->gather()

说得好。但它也不起作用。看起来这不是一个案例敏感性问题。谢谢你的回答。