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
>
>
>

Reply via email to