【发布时间】:2021-07-02 21:41:57
【问题描述】:
我认为 perlbrew 已正确安装并使用了正确的 @INC。我切换到 perlbrew。我想要的模块(String::Approx)已安装。我在~/.bash_profile 中有来源~/perl5/perlbrew/etc/bashrc。
但我收到错误 Can't locate String/Approx.pm in @INC :
$ which perl
/Users/kip/perl5/perlbrew/perls/perl-5.33.9/bin/perl
$ perlbrew info
Current perl:
Name: perl-5.33.9
Path: /Users/kip/perl5/perlbrew/perls/perl-5.33.9/bin/perl
Config: -de -Dprefix=/Users/kip/perl5/perlbrew/perls/perl-5.33.9 -Dusedevel -Aeval:scriptdir=/Users/kip/perl5/perlbrew/perls/perl-5.33.9/bin
Compiled at: May 3 2021 10:04:48
perlbrew:
version: 0.92
ENV:
PERLBREW_ROOT: /Users/kip/perl5/perlbrew
PERLBREW_HOME: /Users/kip/.perlbrew
PERLBREW_PATH: /Users/kip/perl5/perlbrew/bin:/Users/kip/perl5/perlbrew/perls/perl-5.33.9/bin
PERLBREW_MANPATH: /Users/kip/perl5/perlbrew/perls/perl-5.33.9/man
$ perlbrew list-modules
App::cpanminus
PerlIO::gzip
String::Approx
install
$ perl -E 'say for @INC'
/Users/kip/perl5/perlbrew/perls/perl-5.33.9/lib/site_perl/5.33.9/darwin-2level
/Users/kip/perl5/perlbrew/perls/perl-5.33.9/lib/site_perl/5.33.9
/Users/kip/perl5/perlbrew/perls/perl-5.33.9/lib/5.33.9/darwin-2level
/Users/kip/perl5/perlbrew/perls/perl-5.33.9/lib/5.33.9
这是我尝试运行脚本时的特定错误消息(为便于阅读而格式化)。系统@INC 似乎仍在搜索中?
Can't locate String/Approx.pm in @INC (you may need to install the String::Approx module)
(@INC contains: /Library/Perl/5.30/darwin-thread-multi-2level
/Library/Perl/5.30 /Network/Library/Perl/5.30/darwin-thread-multi-2level
/Network/Library/Perl/5.30
/Library/Perl/Updates/5.30.2
/System/Library/Perl/5.30/darwin-thread-multi-2level
/System/Library/Perl/5.30
/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.30) at ./myScript.pl line 21.
【问题讨论】:
-
perl -e'require String::Approx;'输出什么? -
(以后请以文字的形式发布,而不是图片。)
-
@ikegami 它什么也没做......
-
这是 macOS 吗?
-
我认为
./myScript.pl使用的是系统perl,而不是perlbrew perl。这就解释了为什么它找不到模块。该脚本中有shebang 吗?或者,为了避免解释 shebang,您可以将脚本运行为perl myScript.pl而不是myScript.pl