为什么我的Perl程序抱怨"无法在@INC中找到URI.pm"?

Zac*_*112 3 installation perl module

我是Perl的新手.运行脚本时出现以下错误:

Can't locate URI.pm in @INC (@INC contains: /usr/local/packages/perl_remote/5.6.1/lib/5.6.1/i86pc-solaris /usr/local/packages/perl_remote/5.6.1/lib/5.6.1 /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/i86pc-solaris /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1 /usr/local/packages/perl_remote/5.6.1/lib/site_perl .) at (eval 2) line 3.
Compilation failed in require at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/HTTP/Request.pm line 3.
Compilation failed in require at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/UserAgent.pm line 10.
BEGIN failed--compilation aborted at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/UserAgent.pm line 10.
Compilation failed in require at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/Simple.pm line 26.
BEGIN failed--compilation aborted at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/Simple.pm line 26.
Compilation failed in require at txotf_0_install.pl line 35.
BEGIN failed--compilation aborted at txotf_0_install.pl line 35.

可能的原因是什么,以及如何让脚本工作.任何帮助将不胜感激.

Axe*_*man 8

  • 可能你没有URI安装.它可能不会保存在您的计算机上的任何位置,也可能会"安装"在某个位置.

    • 如果它没有安装,那么您需要从CPAN安装它.
    • 如果将它保存到您的机器中,您只需要让系统知道从哪里获得它.

如果必须从CPAN安装它,则可能需要管理员权限才能将其放在列出的目录中.但CPAN将允许您将其安装到用户目录,因此您仍然可以安装它.

因此,如果您无法在列出的目录中安装模块@INC,那么有各种方法.

  1. Perl 5读取一个名为的环境变量PERL5LIB.该"数组"中的任何目录都将被添加@INC.因此,目录结构中的$ENV{PERL5LIB}任何内容都将优先于任何系统目录.(见这里)

  2. 另一种方法是每个脚本.该use libpragma还将指定的目录插入@INC.(见lib)

    use lib '/path/to/URI/module';
    use URI;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 最后一种方法,你可以每次运行.您可以使用-I命令行上的开关运行perl perl -I/path/to/URI/module -e 1(请参阅perlrun)


Sin*_*nür 7

@INC(例如/usr/local/packages,perl_remote等等)中的非标准路径向我表明这是perl为特定目的而安装的自定义,可能具有减少功能以防止恶作剧.

问系统管理员.