The site http://search.cpan.org/~smueller/PAR-0.973/
has the latest PAR.
The prepackaged Windows binary for PAR::Packer is at
http://www.perl.com/CPAN/authors/id/S/SM/SMUELLER/PAR-Packer-0.975-MSWin32-x86-multi-thread-5.8.8.par
I just noticed that "par" is one of the Perl Power Tools comands. The
CPAN link for par leads to the ppt download. How unfortunate.
I am going to take a guess here and suggest that there is something that
is not being packaged into your .exe file. I am going to gear my
suggestions premised up on that because that is the only reason I can
think of for this behavior. I presume that "pp -o hello.exe hello.pl"
will work when hello.pl is a simple print statement.
For debugging, do not use -g (gui) on the command line so that the
print (debugging) statements will show on the command line.
Given that debug print statements are sprinkled about, comment out the
encryption and any other areas that are the most suspect. Then if the
new .exe runs and prints the debug statements, uncomment a suspect area,
create a new .exe and try again.
Any "use foo" line invoked from package main will result in foo.pm being
packed. Any trail of "use" packages will likewise be picked up. If
there are any packages missing it will probably not be one of the ones
from a "use foo" type of statement. If there is anything you suspect,
try some lines like
pp -o main.exe -M foo -M bar -M whatever main.pl
to explicitly get the module packaged.
Is it possible that you have modules coming from a separate lib known
only when the .pl file is run from the command line? If so, try --lib
/path/to/mylib on the command line. pp will not warn you when it cannot
find modules.
If your script invokes a .pl file that has a "use bar" line I do not
think bar.pm will be packaged. That secondary .pl file also will not
get packaged. This is also true for things invoked in a "system(..,
"some.pl", ..)" command.
Any text or other files to be packed must be explicitly requested using
the -a and/or -A flags on the command line.
Good luck