【问题标题】:Perl cannot find MAIL::IMAPClientPerl 找不到 MAIL::IMAPClient
【发布时间】:2014-09-19 18:59:23
【问题描述】:

我正在尝试对 gmail usign perl 执行简单的登录 我已经在 C:\Dwimperl 中安装了 perl 所以当我尝试这个示例代码时:

#!C:\Dwimperl\perl\site\bin

use strict;
use warnings;
use Mail::IMAPClient;

# Connect to IMAP server
my $client = Mail::IMAPClient->new(
    Server   => 'imap.gmail.com',
    User     => 'email@gmail.com',
    Password => 'password',
    Port     => 993,
    Ssl      => 1,
) or die "Cannot connect through IMAPClient: $!";

# List folders on remote server (see if all is ok)
if ( $client->IsAuthenticated() ) {
    print "Folders:\n";
    print "- ", $_, "\n" for @{ $client->folders() };
}

# Say so long
$client->logout();

我有以下错误:

Can't locate Mail/IMAPClient.pm in @INC <@INC contains: c:/Dwimperl/perl/site/lib/MSWin32-x86-multi-thread c:/dwimperl/perl/site/lib c:/Dwimperl/perl/vendor/lib c:/Dwimperl/perl/lib .> at logingmail.pl line4

我将文件 IMAPClient.pm 复制到错误消息中提到的所有文件夹中。 我仍然有同样的信息。 请帮忙^,谢谢

【问题讨论】:

  • 您应该使用提供的安装脚本、cpan 或其他 perl 模块管理器来安装它。如果您要手动安装模块(我不建议这样做!),IMAPClient.pm 需要位于名为 Mail 的目录中。但不要手动安装模块。
  • 好的,我只是将文件 IMAPCLient.pn 放在文件夹 Mail 中,现在它显示无法通过 IMAPCLient 连接:Test.pl 第 7 行的文件描述符错误
  • 太棒了!这意味着 perl 找到了 IMAPClient。疑难解答:metacpan.org/pod/Mail::IMAPClient#Errors

标签: perl


【解决方案1】:

我将文件文件 IMAPClient.pm 复制到文件中提到的所有文件夹中 错误信息。我仍然有同样的信息。

在您的工作目录中,您应该创建“邮件”目录并将文件 IMAPClient.pm 放入其中。

【讨论】:

  • edem 是对的。该模块是 Mail::IMAPClient.pm,因此 Perl 在 @INC 中的目录中查找包含 IMAPClient.pm 的 Mail 目录。
【解决方案2】:

找不到 Mail/IMAPClient.pm

您使用 ActivePerl 还是草莓 Perl?您必须将所有模块安装到您的 Perl 系统中才能使用它们。从命令行尝试:

C> cpan install Mail::IMAPClient

Active Perl 使用Perl Package Manager 来下载包。您可能会发现它更易于使用。尝试安装 Mail-IMAPClient。

@INC 通常包含当前目录,因此您可以将包放在那里,但您必须创建适当的目录结构。 Mail::IMAPClient 包意味着您必须在当前目录中有一个名为Mail/IMAPClient.pm 的文件。即IMAPClient.pm文件必须在当前目录下的Mail目录下。

【讨论】:

    猜你喜欢
    • 2011-12-27
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    • 2020-03-06
    • 2019-03-02
    • 2014-06-15
    • 1970-01-01
    • 2014-11-26
    相关资源
    最近更新 更多