Glenn Linderman schrieb:
Last night I was watching my backup more closely than I usually do, and
I noticed it backing up 4 files matching the name parl*.exe from my perl
source code directory (which is my current directory when I run pp).
Upon investigation, I discovered 98 files matching that pattern, dating
from 11/9/2006, plus one dating from 7/28/2006, but the * only matched 4
characters for that older file, and it matches 7 for the newer ones. So
I ran pp again today, and now I have 100 parl*.exe files.
Looks like each run of pp leaves behind an orphan parl*.exe file.
Is this something added with the parl-regeneration-for-every-pp-call
feature?
Certainly sounds like it. It's using File::Temp to create temporary file
called parlXXXX(.exe) which XXXX replaced by some random string. To be
precise, it does that twice because it needs to extract a "naked" parl
in order to use that to bootstrap itself. It unlink()s the naked parl in
the same subroutine. The only reason it wouldn't do that would be if you
die out of the subroutine.
The second (complete) parl is up to the user of the ::StrippedPARL::*
code to delete. This happens in PAR::Packer. When parl is extracted, a
special flag of the Packer object is set: "parl_is_temporary". The
DESTORY block of PAR::Packer has an unlink() for that if
"parl_is_temporary".
It leaves no traces on my computer. Then again, I haven't checked on
Windows.
Can you please find out whether those parl's are "naked"/"stripped"? You
can find that out by comparing them to the static.exe that is generated
during the PAR build process. The size shouldn't differ.
Steffen