![Perl EPIC インストールされた CPAN モジュールを認識しない](https://rvso.com/image/1316772/Perl%20EPIC%20%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%95%E3%82%8C%E3%81%9F%20CPAN%20%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E8%AA%8D%E8%AD%98%E3%81%97%E3%81%AA%E3%81%84.png)
MacのEclipseは、新しいモジュールを追加すると正常に動作していましたが、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 の GUI にコピーして貼り付けただけなのに、末尾にスペースがあるはずがありません。
もちろん、これらすべての後に同じProject
メニューからプロジェクトをクリーンアップします。
答え2
Eclipse Perl EPICにモジュールを組み込むための手順を追加するだけです(いくつかの追加メモ付き):
プロジェクトを右クリック > プロパティ > Perl Include Path
含めたいパスを入力または参照してください
フォルダやファイルにスペースが含まれている場合は、インクルードパスを二重引用符で囲むようにしてください。
${project_loc}/
前述のようにパスの先頭にここつまり
${project_loc}"/path/to/some module"
、または"${project_loc}/path/to/some module"
「リストに追加」>「OK」をクリックします。
Eclipseを再起動する