[Melbourne-pm] Strawberry Perl and PAR (was Re: Run Perl Script from HTML)
Toby Corkindale
toby.corkindale at strategicdata.com.au
Thu Sep 24 19:31:57 PDT 2009
Daniel Pittman wrote:
> scottp at dd.com.au writes:
>
>> Instead of active state, consider strawberry Perl & par
>
> Ah, a recommendation for those tools! Excellent!
>
> That presumably means that you have worked with them. Other than the standard
> PAR problems, like five-year-old bugs causing it to do the wrong thing when it
> comes to detecting changed libraries, how well does this work?
For those of you curious about this particular PAR bug..
PAR caches the contents of the archives, and is meant to detect if the
cache is up-to-date by a checksum. Unfortunately a very-long-standing
issue with PAR is that it checksums $0 (well, argv[0] actually), rather
than the actual .par file.
Now, if you're distributing a self-contained .exe with your application,
then this is acceptable behaviour.. since your .exe will change every
time you build a new version, and thus the checksum will change, and the
new version of your app will run.
However if you run your app via "parl myapp.par" instead, perhaps
because you have a selection of Perl scripts you'd like to run in it,
then you'll only ever get the first version you distribute..
(Because it's checksumming parl, not myapp.par. Whoops.)
The pure-perl implementation of PAR does the right thing, and thus both
the following methods also work correctly:
#!/usr/bin/perl
use PAR 'myapp.par';
or
perl -MPAR myapp.par
-Toby
More information about the Melbourne-pm
mailing list