无法在@INC中找到Date / Parse.pm

时间:2014-03-03 23:54:39

标签: perl

在运行perl scirpt时出现以下错误。

Can't locate Date/Parse.pm in @INC (@INC contains: /opt/local/lib/perl5/site_perl/5.16.1/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.16.1 /opt/local/lib/perl5/vendor_perl/5.16.1/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.16.1 /opt/local/lib/perl5/5.16.1/darwin-thread-multi-2level /opt/local/lib/perl5/5.16.1 /opt/local/lib/perl5/site_perl /opt/local/lib/perl5/vendor_perl .) at ../../tools/replace_tenant_json_data.pl line 27. BEGIN failed--compilation aborted at ../../tools/replace_tenant_json_data.pl line 27.

从上面的错误我推断perl看起来模块的错误目录。 正确的目录是/System/Library/Perl/5.16

命令env -I perl -V与perl -V

的形式不同
`env –I perl –V
 @INC:
/Library/Perl/5.16/darwin-thread-multi-2level
/Library/Perl/5.16
/Network/Library/Perl/5.16/darwin-thread-multi-2level
/Network/Library/Perl/5.16
/Library/Perl/Updates/5.16.2
/System/Library/Perl/5.16/darwin-thread-multi-2level
/System/Library/Perl/5.16
/System/Library/Perl/Extras/5.16/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.16

perl –V
@INC:
/opt/local/lib/perl5/site_perl/5.16.1/darwin-thread-multi-2level
/opt/local/lib/perl5/site_perl/5.16.1
/opt/local/lib/perl5/vendor_perl/5.16.1/darwin-thread-multi-2level
/opt/local/lib/perl5/vendor_perl/5.16.1
/opt/local/lib/perl5/5.16.1/darwin-thread-multi-2level
/opt/local/lib/perl5/5.16.1
/opt/local/lib/perl5/site_perl
/opt/local/lib/perl5/vendor_perl`

1 个答案:

答案 0 :(得分:3)

@NigoroJr在主要问题(cpan install Date::Parse)下的评论中给出了正确的提示,但我将阐述perl -V输出中的差异。

来自env的Darwin手册页:

SYNOPSIS
     env [-i] [name=value ...] [utility [argument ...]]

DESCRIPTION
     env executes utility after modifying the environment as specified on the command line.  The option
     name=value specifies an environmental variable, name, with a value of value.  The option `-i' causes
     env to completely ignore the environment it inherits.

因此,当您运行env -i perl -V时,您将获得一个空白/默认环境,即获取系统安装的perl。当你只运行`perl -V'时,你会得到你实际使用的版本,看起来像是你安装的版本。

顺便说一句,看起来您的活动Perl是 rev,而不是系统提供的,所以也许您应该考虑切换回系统提供的Perl。