http://qs321.pair.com?node_id=718264

manu_bans has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I have installed par-packer but while i try to create a exe using pp -o it gives an error message.. the procedure entry point Perl_hv_common_key_len could not be located in the dynamic link library perl58.dll. I am using perl 5.8.8 build 824... Please help me with this... Thanks Manish

Replies are listed 'Best First'.
Re: getting error while using par-packer 0.976
by Anonymous Monk on Oct 21, 2008 at 07:18 UTC
      Perl_hv_common_key_len was added to 5.8.8/5.8.9 I came accross the same error, its a problem with all the PAR from trouchelle58, and theoryx5 and bribes. ActiveState doesn't have PAR::Packer. My solution was to switch to strawberryperl.
Re: getting error while using par-packer 0.976
by Freezy (Scribe) on Oct 20, 2008 at 21:16 UTC

    It's kind of tricky to debug this from my position, but could you try upgrading to par-packer 0.982? It seems to be the newest version and it might possibly deal with this issue.

    You should be able to accomplish this with CPAN, as root (I am assuming you are using Linux, if you are using Windows then use "ppm" see Using PPM):

    perl -MCPAN -e"install Par::Packer"

    Which should replace your version with the latest CPAN has to offer.

    I've tried to google the error message you gave us and I can't seem to find anything helpful and I have no specific experience with it. Could you possibly provide us with the code you are trying to package?

    If we assume the problem is in the code, a decent method to debug this might be to reduce the code as much as possible (comment out stuff) and put things back in until it stops packaging correctly. If pp has a debug function, you might want to try using that to step through the compilation process.

    If may also be that your version of "perl58.dll" is incorrect. Try to find out where it is and see if you can get a newer version of it (keep backups if you do this manually, but there should be a better way to accomplish it than that).