On Tue, Jun 14, 2011 at 9:23 AM, nikos <nikos...@gmail.com> wrote: > building an executable with Strawberry Perl is successful but when > actually running the exe (after we have renamed the c:/strawberry to > c:/strawberryX so it cannot find the dependencies from the path), > fails with the following errors : > > " Can't locate loadable object for module IO in @INC > ... > perl -V reveals something strange with the backslashes: > > %ENV: > PERL_JSON_BACKEND="JSON::XS" > PERL_YAML_BACKEND="YAML" > @INC: > C:/strawberry/perl/lib > C:/strawberry/perl/site/lib > C:\strawberry\perl\vendor\lib
That is indeed a bit strange, but has been there for quite some time without causing any problems for PAR::Packer. > I've found id 52794 (https://rt.cpan.org/Public/Bug/Display.html? > id=52794) which is related to the issue although it refers to version > PAR::Packer 1.001;nevertheless I got the > "if ($Config{_delim} eq '\\') { s{\\}{/}g for @inc }" from the patch You read it wrong: this line _was_ the problem and got thrown out. Also it could only affect the C:\strawberry\perl\vendor\lib item in @INC and IO.dll (that's what the "loadable object" in the error message is) is almost certainly not located under that path. But the @INC given in the error message is totally wrong: a packed executable's @INC should only contains paths into the the (per-user) cache area and some subroutine refs. Can you please try the following pp -o show_inc.exe -e "print qq[INC = \@INC\n]" .\show_inc.exe and post the output. Also: did you build PAR::Packer yourself? Cheers, Roderich > and added it to par.pl. > I also corrected Strawberry's @INC by prepending the path "C:/ > strawberry/perl/vendor/lib" by setting the PERL5LIB env variable, > rebuilt it and everything works fine;even tried it on machines that > have no Perl installation whatsoever > > It looks like Strawberry has the path messed up and needs the correct > one. Furthemore > "if ($Config{_delim} eq '\\') { s{\\}{/}g for @inc }" satisfies > Heavy.pm > > Any hints? > thanks > > >