Perl Net::Telnet::Cisco 命名参数错误
Perl Net::Telnet::Cisco Bad named parameter
我正在尝试完成一些脚本编写,以将更改集中部署到大约 400 台 Cisco 设备。我有一个从 MrAudit that's using Net::Telnet::Cisco 修改而来的 perl 脚本,在我的一生中,我无法弄清楚命名参数组件。
在文档中,他们有:
$ok = $obj->cmd($string);
$ok = $obj->cmd(String => $string,
[Output => $ref,]
[Prompt => $match,]
[Timeout => $secs,]
[Cmd_remove_mode => $mode,]);
@output = $obj->cmd($string);
@output = $obj->cmd(String => $string,
[Output => $ref,]
[Prompt => $match,]
[Timeout => $secs,]
[Cmd_remove_mode => $mode,]
[Normalize_cmd => $boolean,]);
我的代码是:
$testString 是我针对设备 运行 的测试命令,$userTest1 是一个正在转换的数组,我希望在其中存储输出。
$::OPENRTR->cmd(String=>$testString,[Timeout=>5,Output=>$userTest1,]);
而且每次,无论我修改哪个组件或尝试以不同的方式编写它,我都会得到错误的变体:
Odd number of elements in hash assignment at(filename)
bad named parameter "ARRAY(0x2e46460)" given to Net::Telnet::Cisco::cmd() at mrAudit-TACACSMod.pl line 279
我知道它必须是简单的东西,但它只是飞过。任何帮助,将不胜感激。
我认为文档中的方括号只是表明参数是可选的,您不应该在实际代码中使用它们:
$OPENRTR->cmd( String => $testString,
Timeout => 5,
Output => $userTest1);
我正在尝试完成一些脚本编写,以将更改集中部署到大约 400 台 Cisco 设备。我有一个从 MrAudit that's using Net::Telnet::Cisco 修改而来的 perl 脚本,在我的一生中,我无法弄清楚命名参数组件。
在文档中,他们有:
$ok = $obj->cmd($string);
$ok = $obj->cmd(String => $string,
[Output => $ref,]
[Prompt => $match,]
[Timeout => $secs,]
[Cmd_remove_mode => $mode,]);
@output = $obj->cmd($string);
@output = $obj->cmd(String => $string,
[Output => $ref,]
[Prompt => $match,]
[Timeout => $secs,]
[Cmd_remove_mode => $mode,]
[Normalize_cmd => $boolean,]);
我的代码是:
$testString 是我针对设备 运行 的测试命令,$userTest1 是一个正在转换的数组,我希望在其中存储输出。
$::OPENRTR->cmd(String=>$testString,[Timeout=>5,Output=>$userTest1,]);
而且每次,无论我修改哪个组件或尝试以不同的方式编写它,我都会得到错误的变体:
Odd number of elements in hash assignment at(filename)
bad named parameter "ARRAY(0x2e46460)" given to Net::Telnet::Cisco::cmd() at mrAudit-TACACSMod.pl line 279
我知道它必须是简单的东西,但它只是飞过。任何帮助,将不胜感激。
我认为文档中的方括号只是表明参数是可选的,您不应该在实际代码中使用它们:
$OPENRTR->cmd( String => $testString,
Timeout => 5,
Output => $userTest1);