"Net::Netconf::Manager" 将 RPC 请求中的下划线转换为连字符

"Net::Netconf::Manager" converts underscore in RPC request to hyphen

我正在使用 Net::Netconf::Manager 使用 RPC 命令查询设备。在 RPC 命令中,我应该发送一个参数列表,所以我在散列中添加查询参数。其中一个论点是 verbosity_level

请注意,我在此参数中使用了下划线 _。当我打印散列时,它仍然是下划线。

但是当我打印发送到设备的 XML RPC 请求时,参数更改为 verbosity-level

<verbosity-level>abcd</verbosity-level>

而不是

<verbosity_level>abcd</verbosity_level>

所以设备说它不知道这样的参数。

为什么下划线会转换为连字符?

执行此操作的代码在第 492 行 Net/Netconf/Device.pm。这是一个简单的替换,没有评论解释为什么它在那里

我能想到的就是把那行注释掉

($tag = $field) =~ s/_/-/g

并将其替换为

$tag = $field

这应该会让事情顺利进行。同时,您可以发送电子邮件至 Juniper Networks Perl Team netconf-support@juniper.net 并询问相关事宜。如果您这样做,请让我们知道回复