我在perl软件包5.10中遇到错误。
“inet_pton不是有效的Socket宏”
if (Socket::inet_pton (AF_INET6,$self->{'ip'}) )
{
$log->print("we hit here and ip=$self->{'ip'}");
$self->{'session'} = Net::SNMP->session(-hostname => $self->{'ip'},
-community => $self->{'community'},
-port => $self->{'port'},
-version => 'snmpv2c');
}
你能告诉我根本原因吗?
答案 0 :(得分:0)
Socket使用自动加载器。这是当你试图调用一个不存在的子时产生的消息。
$ perl -MSocket -wE'my $x = Socket::some_name()'
some_name is not a valid Socket macro at -e line 1
换句话说,错误消息与
同义Undefined subroutine &Socket::inet_pton called
您必须拥有一个Socket版本,该版本早于添加模块对inet_pton
的支持。因此,修复只是升级该模块。
答案 1 :(得分:-1)
你的Perl太老了。据我所知,直到5.12才添加inet_pton
支持。从CPAN安装较新版本的Socket
可能会有所帮助,但我不会打赌它。 Perl 5.10于2007年问世,当时的IPv6支持比现在更糟糕。