在 Mac 上,Eclipse 可以很好地添加新模块,直到我安装了Text::CSV_XS
Eclips 无法识别的模块,@INC
例如
use strict;
use SOAP::Transport::HTTP;
SOAP::Transport::HTTP::CGI->dispatch_to('C2FService')->handle;
BEGIN {
package C2FService;
use vars qw(@ISA);
@ISA = qw(Exporter SOAP::Server::Parameters);
use SOAP::Lite;
sub c2f {
my $self = shift;
my $envelope = pop;
my $temp = $envelope->dataof("//c2f/temperature");
return SOAP::Data->name(
'convertedTemp' => ( ( ( 9 / 5 ) * ( $temp->value ) ) + 32 ) );
}
}
use SOAP::Transport::HTTP;
如果我将其注释掉,use SOAP::Lite;
则会被标记为错误,如果模块未安装,则会被标记为错误、未找到等。两者都使用 CPAN 安装,
$ perl -c soap-test.pl
post-code-check.pl syntax OK
Perl 很好,CPAN 测试全部通过,代码可以运行,只有 EPIC 落后。
$ pwd && ls
/opt/local/lib/perl5/site_perl/5.12.4/SOAP
Client.pod Lite Server.pod
Constants.pm Lite.pm Test.pm
Data.pod Packager.pm Trace.pod
Deserializer.pod SOM.pod Transport
Fault.pod Schema.pod Transport.pod
Header.pod Serializer.pod Utils.pod
如果use
我的文件开头有错误,那么其余的源就不会进行错误检查。
答案1
我设法通过将我在系统上找到的所有路径手动添加到项目包含路径来解决这个问题,(click in the source of your project) > Project > Properties
转到项目的根目录并打开文件.includepath
,并确保路径和结束引号后没有尾随空格:
<includepathentry path="/opt/local/lib/perl5/vendor_perl/5.12.4 " />
尽管我只是从终端将我的一些条目复制粘贴到 Eclipse 的 GUI 中,但绝对不可能有尾随空格。
当然,完成所有这些之后,都要从同一个Project
菜单中清理项目。
答案2
只需添加在 Eclipse Perl EPIC 中包含模块的步骤(附一些补充说明):
右键单击您的项目>属性>Perl 包含路径
输入或浏览要包含的路径
如果您的文件夹或文件有空格,请确保用双引号括住包含路径
在您的路径前面加上
${project_loc}/
如上所述这里即
${project_loc}"/path/to/some module"
或"${project_loc}/path/to/some module"
单击“添加到列表”>“确定”。
重启 Eclipse