/ / Não é possível localizar Data / Parse.pm em @INC - perl

Não é possível localizar Data / Parse.pm em @INC - perl

Obtendo seguinte erro ao executar meu 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.

Do erro acima, eu inferi que o perl examina o diretório errado para os módulos. O diretório correto é /System/Library/Perl/5.16

comando env –I perl –V é diferente forma 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`

Respostas:

3 para resposta № 1

@NigoroJr deu a sugestão certa no comentário sob a questão principal (cpan install Date::Parse) mas vou expor as diferenças no perl -V saídas.

Da página do homem de Darwin para env:

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.

Então, quando você corre env -i perl -V, você obtém um ambiente em branco / padrão, que está captando o perl instalado pelo sistema. Quando você executa apenas `perl -V", você obtém a versão que está realmente usando, que se parece com algo que você instalou.

BTW, parece que o seu ativo Perl é um Mais velho rev do que aquele que o sistema fornece, então talvez você deva considerar voltar para o Perl fornecido pelo sistema.