johannesegger wrote on Fri Jan 26 22:00:37 CET 2007:
Hello, I've been working on a Perl project for a while, which is stored in a SVN repository. I decided to try out the Eclipse 3.2 & EPIC. I installed Eclipse 3.2 SDK, the subversive eclipse plugin. I don't like activeperl because I don't have MS visual whatever (cl.exe missing) so I can't use CPAN, and there's some stuff that I need to compile manually for which there's no bundles (e.g. Sub::Recursive 0.03 and others). So I configured EPIC - not much there: I updated my WinXP Env Vars to include cygwin/bin; I specified the path to cygwin/bin/perl.exe. I set "interpreter type" to cygwin. I set up the project as SVN Project, checked out a part of the subtree (that is written in Perl) called "AEL-Validator" (AEL::Validator), and set it up as a new Perl project. So far, so good. Worked like a charm. Then the problems started. The project uses HTML::TreeBuilder among other modules, so I went into cygwin and fired up CPAN and installed it (I previously did not develop on my local machine, this is why the modules were missing). After I've installed the module, EPIC still complained about not finding them. I looked at the location of the modules in cygwin: /usr/lib/perl5/site_perl/5.8 I looked at the @INC path * in EPIC, error message in "Problems". It includes "/usr/lib/perl5/site_perl/5.8" * cygwin shell, perl -e 'print "$_\n for (@INC)"'. Same. * I set up a new project, this time local filesystem, not SVN. Same. This is where the weirdness really starts: * In the new project, "Test", I can "use HTML::Element" (part of HTML::TreeBuilder package) and it displays and executes fine. Not so with the other project! * In the AEL::Validator project, I cannot even run a test file. The test file includes a line such as "use AEL::Validator". perl can't find a file within the same project! (you don't need "use lib" for that) * In Test, I also cannot use AEL::Validator, not even if I use the "use lib" pragma. * I've added the path to the AEL-Validator project to @INC under properties for both projects. No avail, no go. I can also see that this is correctly "translated" into a cygwin path when I try to execute it. But it won't work!!! What gives??? :-) thanks, Johannes
jploski wrote on Fri Jan 26 22:16:51 CET 2007:
1. Get the "problematic" script to work in Cygwin shell 2. Compare the command line used by EPIC to execute the Perl interpreter which you use yourself. You can see the command line used by EPIC by enabling "Debug console" in EPIC preferences. This causes additional information to appear in the log (/.metadata/.log, which you can also open as Error Log view in Eclipse). Regarding source code validation working differently in two projects: make sure that you run "Project/Clean" after you alter @INC path in a project properties. This clears old entries from the Problems view and reruns validation on the entire project. Note that it should NOT be necessary to add any paths from the Perl installation to the @INC specified in project properties. Also note that you can use relative paths in the @INC in project properties, and that they will be then treated as relative to the project root directory. Having said all that, I'd spend more effort on getting ActiveState Perl to work in your place... You can install Microsoft's free command-line compiler kit and nmake to compile stuff from source.
johannesegger wrote on Sat Jan 27 00:46:14 CET 2007:
Thanks for your reply. 1) but it already does. I suppose I should have mentioned that. It's a svn checkout to a cygwin environment, I loaded all the necessary modules through CPAN. There's really no reason why it shouldn't work (and it does). To me, it doesn't look like a problematic module; it looks like something I'm doing wrong with EPIC (likely) or a bug (?). Some of it is certainly weird, why would it show a module as being unavailable in one project and not in another? Also why would a test not be able to load a custom module in the same distribution - regardless of @INC. 2) Relative paths - what is a path, by default, relative to? workspace? I added '${project_loc}' to @INC, but that shouldn't make a difference, should it? I did, and I did Project > Clean after that, and it didn't change anything. As to ActivePerl. My problem was not having "cl.exe", and I read online that you have to have Microsoft Visual *** to get that tool (I know you get nmake for free). Can you point me to a link where I can download the free command-line compiler kit? Maybe you have some more advice? ;-) This is my win32 environment, tomorrow I'll try under Ubuntu and see if that works out better for me. Johannes
Note: The above is an archived snapshot of a forum thread. Use the original thread at sf.net to post comments.