4

有人可以给我一根骨头吗?

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 版本是: (v5.16.3) on RHEL5

$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 ]#
4

2 回答 2

2

IO::Socket::SSL将在决定从哪个模块继承之前尝试加载其他模块。这些是:

  • IO::Socket::IP
  • IO::Socket::INET6
  • IO::Socket::INET

既然你已经IO::Socket::INET安装了,也许其他两个模块之一有问题?

于 2013-05-15T11:17:34.290 回答
1

有点尴尬,但我发现了导致我的问题的问题:使用的文件中的 shebang 是:( #!/usr/bin/perl使用供应商 perl)
而 我的非供应商 perl 安装版本需要
#!/bin/env/ perl
or 。
#!/usr/bin/local/perl
调整平台。

感谢所有提供意见的人,谢谢!

于 2013-05-17T10:18:19.653 回答