![Perl EPIC не распознает установленные модули CPAN](https://rvso.com/image/1316772/Perl%20EPIC%20%D0%BD%D0%B5%20%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B8%20CPAN.png)
Eclipse на Mac работал нормально, добавляя новые модули, пока я не установил , Text::CSV_XS
который Eclipse не распознает как добавленный, @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 из терминала, там никак не могло быть завершающего пробела.
После всего этого, конечно, чистые проекты из того же Project
меню.
решение2
Просто добавляем пошаговую инструкцию по включению модулей в Eclipse Perl EPIC(с несколькими дополнительными примечаниями):
Щелкните правой кнопкой мыши свой проект > Свойства > Путь включения Perl.
Введите или выберите путь, который вы хотите включить.
Если в вашей папке или файлах есть пробелы, обязательно заключите путь включения в двойные кавычки.
Добавьте к вашему пути
${project_loc}/
указанное вышездесьт.е.
${project_loc}"/path/to/some module"
или"${project_loc}/path/to/some module"
Нажмите «Добавить в список» > «ОК».
Перезапустить Eclipse