Bastad David wrote:
 
>  I installed PAR-587 but still have the "perl58dll" error 
> message. Also,I still have the following error when I run my 
> executable " Can't locate object method "new" via package 
> "XML::SAX::PurePerl" at XML/SAX/ParserFactory.pm line 43.

I tried your script + XML file here on Linux and it worked
fine when packed as executable with pp. For purely cosmetic reasons,
I suggest changing the first few lines to

use strict;
use XML::Simple;
$XML::Simple::PREFERRED_PARSER = "XML::SAX::PurePerl";

to force usage of XML::SAX::PurePerl. For pp you still
must add the line

use XML::SAX::PurePerl;

or invoke pp with "pp -M XML::SAX::PurePerl ..." so that
this module gets included into the executable - it's arguably
a deficiency of Module::ScanDeps that it doesn't detect this
automatically.

Anyway, I can't reproduce this problem. Please check that
lib/XML/SAX/PurePerl.pm is included in your executable with

unzip -l your.exe

(you can get a Windows version of unzip from 
http://www.info-zip.org/pub/infozip/
or - if you have Cygwin installed - just install the unzip package)

As for the "The procedure entry point PL_memory_wrap could
not be located in the dynamic link library perl58.dll",
this has come up several times already. The reason is most likely
that your installed version of perl and the version of perl
that your PAR package was built with are different.
"Version" in this context may mean any of the following:

- the version number of perl (perl -v)
- the compile time options used to build perl (see Perl -V)
- the C compiler used to build perl

This should probably be in the FAQ:

Using pp from a PAR built with one version (in above sense) 
of perl with another version of perl may show the same 
problems as using binary modules built from one version of
perl with another version. 

(AFAICT, the latter is what's actually happening: pp literally
contains some binary stuff from the perl it was built with that
will be copied into the pp'ed exutable together with stuff
from the local perl installation.)

Cheers, Roderich

Reply via email to