@INC Perl-无法在@INC中找到Class/CSV.pm

Qui*_*sUK 0 perl

我目前正在尝试使用以下三个类之一创建/生成CSV文件:

use Class::CSV;
use Text::CSV;
use Text::CSV_XS;
Run Code Online (Sandbox Code Playgroud)

虽然当我尝试运行它,检查我的代码时,我想出了相同的错误消息:

Can't locate Class/CSV.pm in @INC (@INC contains: C:/Per/site/lib C:/Perl/lib .) at C:\Users\<DIRECTORY> - <DIRECTORY>.file.pl line1
Run Code Online (Sandbox Code Playgroud)

虽然我没有运气,但我试过搜索文件.还有其他人遇到过这个问题吗?我查看了目录,CSV.pm文件确实存在.

Joh*_*ett 5

您可能没有安装这些模块。

在你的 shell 中运行它

perl -MCPAN -e shell
Run Code Online (Sandbox Code Playgroud)

然后运行

install Class::CSV
Run Code Online (Sandbox Code Playgroud)

我假设您在 CPAN 上找到了这些课程


zos*_*tay 5

假设Class::CSV您的系统上安装了该库,则您的库搜索路径不完整.(您的错误消息C:/Per/site/lib列为搜索库,看起来像是一个错字C:/Perl/site/lib,您可能想要查看.)

您需要找到CSV.pm库所在的正确文件.例如,如果它在以下位置找到:

C:/Perl/lib/foo/Class/CSV.pm
Run Code Online (Sandbox Code Playgroud)

然后,您有以下选项之一.

  1. 修改Perl的环境或调用以便设置它(假设我的Windows技能没有完全过期,如果我的语法错误,有人可以自由编辑和更正):

    PERL5LIB=%PERL5LIB%;C:/Perl/lib/foo
    
    Run Code Online (Sandbox Code Playgroud)
  2. 您可以使用-Iperl选项添加路径:

    perl -IC:/Perl/lib/foo my-app.pl
    
    Run Code Online (Sandbox Code Playgroud)
  3. 您可以use lib在程序本身中使用该命令添加搜索路径:

    use lib 'C:/Perl/lib/foo';
    use Class::CSV;
    # etc.
    
    Run Code Online (Sandbox Code Playgroud)