Hi Johan, [...]
I have a windows box with strawberry perl and wxwidgets and everything. I can type "wperl myscript.pl" and it runs. Fine. The end user needs an icon on the desktop that runs the program. How would *you* do it? I do like your portable perl applications approach but unless I missed something essential it still seems requires several manual steps, like assembling the necessary sources (you said par could be used for that) and building the installer.
Most manual steps are only required initially. An easy approach is to continue using pp to build the required environment. Extract it immediately afterwards. Look at my ugly hack "unpar.cmd" to see one way to do it. Comparing the pp output to the original Perl environment and sources, I found that XSLoader.pm has been modified by pp. I reverted this and some more cosmetic optimizations (removed docs). You don't need to repeat this after small changes not changing your dependencies. For ExifTool, I built a static "Perl environment part" without any ExifTool code. I merge this static part with the ExifTool sources each time a new version is released. Creating the installer and the ZIP archive is then just drag and drop of the ExifTool source archive onto a cmd file. I have to admit that I don't yet provide a wperl equivalent since I didn't yet use any Perl GUI software. Do you want to send me a minimal Perl GUI test program?
Also, is there any protection against users modifying files after unpacking?
The user can install the application to the dedicated directories like %ProgramFiles(x86)%. Elevated rights are needed to write there. Then, during normal use, he can't write these directories. Another advantage is that AV software is not frightened as if programs are run from %temp%. Running payload from %temp% is typical malware behavior and therefore forbidden on many systems. Oliver