有人可以在这个问题上给我一个骨头吗?
Can't locate object method "new" via package "IO::Socket::SSL" at Services/IMAP/Client.pm line 136.
if ( $use_ssl ) {
135 require IO::Socket::SSL;
136 $imap = IO::Socket::SSL->new (
137 Proto => "tcp",
138 PeerAddr => $hostname,
139 PeerPort => $port,
140 Timeout => $timeout,
141 Domain => AF_INET,
142 )
143 or $self->log_(0, "IO::Socket::SSL error: $@");
144 }
它运行良好数月,但经过一些升级后;可能是perl,它开始了。
Perl版本是:RHEL5上的(v5.16.3)
$perldoc -lm IO::Socket::SSL
/usr/local/lib/perl5/site_perl/5.16.3/IO/Socket/SSL.pm
$perldoc -lm IO::Socket::INET
/usr/local/lib/perl5/5.16.3/i686-linux/IO/Socket/INET.pm
$perldoc -lm Net::SSLeay
/usr/local/lib/perl5/site_perl/5.16.3/i686-linux/Net/SSLeay.pm
我错过了依赖关系吗?
非常感谢任何帮助
These all return without errors.
[root@gw1 ]# perl -MIO::Socket::SSL -e1
[root@gw1 ]# perl -MIO::Socket::IP -e1
[root@gw1 ]# perl -MIO::Socket::INET6 -e1
[root@gw1 ]# perl -MIO::Socket::INET -e1
[root@gw1 ]# perl -MNet::SSLeay -e1
[root@gw1 ]#
答案 0 :(得分:1)
IO::Socket::SSL
会在决定从哪个模块继承之前尝试加载其他模块。这些是:
IO::Socket::IP
IO::Socket::INET6
IO::Socket::INET
由于您安装了IO::Socket::INET
,其他两个模块中的一个可能会出错吗?
答案 1 :(得分:0)
有点尴尬,但我发现问题导致了我的问题:
使用的文件中的shebang是:
#!/usr/bin/perl
(使用供应商perl)
而
#!/bin/env/ perl
或
#!/usr/bin/local/perl
我的非供应商perl安装版本需要。
调整平台。
向所有提供意见的人致谢!