Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos perl可以';我找不到已安装的模块,但CPAN可以,而且我可以找到它们。为什么可以';t perl?_Macos_Perl_Macports - Fatal编程技术网

Macos perl可以';我找不到已安装的模块,但CPAN可以,而且我可以找到它们。为什么可以';t perl?

Macos perl可以';我找不到已安装的模块,但CPAN可以,而且我可以找到它们。为什么可以';t perl?,macos,perl,macports,Macos,Perl,Macports,我使用的是安装在MacBook10.6的/opt/local/bin中的perl 5.16.3提供的macports jason-danckss-macbook:eg Jason$ which perl /opt/local/bin/perl 我正在测试metapan中AI:Categorizer.pm附带的demo.pl文件。我通过macports perl提供的CPAN安装了AI:Categorizer: 尝试运行它: 原件: ./demo.pl /users/Jason/Desktop/

我使用的是安装在MacBook10.6的/opt/local/bin中的perl 5.16.3提供的macports

jason-danckss-macbook:eg Jason$ which perl
/opt/local/bin/perl
我正在测试metapan中AI:Categorizer.pm附带的demo.pl文件。我通过macports perl提供的CPAN安装了AI:Categorizer:

尝试运行它:

原件:

./demo.pl /users/Jason/Desktop/Dropbox/capstone/capstone/notes/HTML/sock
Can't locate AI/Categorizer.pm in @INC (@INC contains: /sw/lib/perl5/5.10.0/darwin-thread-multi-
2level /sw/lib/perl5/5.10.0 /sw/lib/perl5/darwin-thread-multi-2level /sw/lib/perl5 /sw/lib/perl5
/darwin /Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level
/System/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level /Library/Perl/5.10.0
/Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0 /Network
/Library/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library
/Perl/Extras/5.10.0 .) at ./demo.pl line 21.
BEGIN failed--compilation aborted at ./demo.pl line 21.
略微修改为:
use lib”/opt/local/lib/perl5/5.16.3”因为当我使用CPAN时,模块就是在这里编写的(如果需要的话,我使用
perl-MCPAN-eshell
IDK)

在正确的位置检查它:

jason-danckss-macbook:eg Jason$ find /opt/local/lib/perl5 -name 'Categorizer.pm'
/opt/local/lib/perl5/site_perl/5.16.3/AI/Categorizer.pm
我甚至试着使用诊断工具。我和perl都找不到diagnostic.pm。CPAN找不到它。我猜它在最近的perl版本中被删除了

好的,我的计算机上有fink和macports,还有一个默认的perl安装。macports版本perl是在$PATH中找到的第一个perl。我对它没意见,毕竟它是最近才出现的:5.16.3

我不知道也不认为从多个地方阅读模块是个坏主意。但是IDK。我不想去想我需要做什么样的体操来解决这个问题


以前有人遇到过这种情况吗?

我刚刚查看了
AI::Categorizer
包,其中包含的
demo.pl
文件有一个硬编码的shebang
#/usr/bin/perl
,所以我相信它正在尝试使用系统perl

假设您还没有尝试将这一行(demo.pl的第一行)更改为指向
/opt/local/bin/perl
,那么我怀疑这样做可以解决您的问题


您还可以考虑将SeBub设置为<代码> /Ur/bin /Env Perl < /代码>,它应该使用您的路径中的“代码> Perl < /Cord>”的版本。另外,请看一下安装非系统版本的Perl的更好方法。

我刚刚看了一下
AI::Categorizer
包,其中包含的
demo.pl
文件有一个硬编码的shebang
#/usr/bin/perl
,所以我相信它正在尝试使用系统perl

假设您还没有尝试将这一行(demo.pl的第一行)更改为指向
/opt/local/bin/perl
,那么我怀疑这样做可以解决您的问题


您还可以考虑将SeBub设置为<代码> /Ur/bin /Env Perl < /代码>,它应该使用您的路径中的“代码> Perl < /Cord>”的版本。另外,看看哪种方法可能是安装非系统版本Perl的更好方法。

这不是对您问题的直接回答,而是。。。我建议您查看
perlbrew
而不是使用MacPorts来安装其他版本的Perl,请查看
的结果,Perl
并不重要。它将使用shebang(
#!
)行上标识的解释器,而不是对您的问题的直接回答,而是。。。我建议您查看
perlbrew
而不是使用MacPorts来安装其他版本的Perl,请查看
的结果,Perl
并不重要。它将使用shebang(
)行上标识的解释器。我强烈推荐Perlbrew。您不仅可以安装不同的Perl,还可以安装多个版本的Perl,每个版本都有自己的模块集。唯一的问题是必须使用Bash作为shell。对于90%的Mac用户来说,这不是问题。对我来说,这是一个问题,因为我使用了Kornshell。我确实尝试过改变shebang。我别无选择,因为我使用的是macports perl附带的CPAN。我强烈推荐Perlbrew。您不仅可以安装不同的Perl,还可以安装多个版本的Perl,每个版本都有自己的模块集。唯一的问题是必须使用Bash作为shell。对于90%的Mac用户来说,这不是问题。对我来说,这是一个问题,因为我使用了Kornshell。我确实尝试过改变shebang。我别无选择,因为我使用的是macports perl附带的CPAN。
jason-danckss-macbook:eg Jason$ find /opt/local/lib/perl5 -name 'Categorizer.pm'
/opt/local/lib/perl5/site_perl/5.16.3/AI/Categorizer.pm