On 11/7/06, Peter Gordon <[EMAIL PROTECTED]> wrote:
At this point either I have made a mistake and/or am thoroughly confused.
No, it's what I suspected. Your build of PAR has been done against some older version of perl (or at least of Scalar::Util) - that's the stuff extracted with my script. It's probably a bug that a second, newer version was also culled from the pp'ing system - that's the stuff extracted with unzip. But anyway, the old stuff is used once the pp'ed executable gets invoked and it doesn't fit well with newer stuff from the pp'ing system. This problem is currently heavily discussed in another thread on the par mailing list. The only thing missing in the puzzle is: why is this older stuff present? It's "burned" into PAR at PAR build time, but you said you built PAR yourself on the pp'ing machine, and didn't reinstall perl or Scalar::Util in the meantime. Perhaps there are remnants of an old perl installation on that machine that you aren't aware of? (e.g. another recent poster with a similar problem discovered an older perl58.dll in his c:\windows\system32 directory, apparently installed by a third party application and picked up because of some peculiar rules on Windows how to locate DLLs). As for the flashing-windows-when-using-backticks thing: I once wrote an application using Tk, it drove a third party app using their command line interface (including reading and interpreting the output of such). It used IPC::Run3 for that. When I pp'ed it with --gui it didn't have the flashing windows effect. In any case, IPC::Run3 uses system() internally (it does some fancy redirecting beforehand and afterwards to handle the capture/feeding of stdin/stdout/stderr, though), so I'm surprised that you see different behavious for system() and IPC::Run3. I'll try to experiment a little over the weekend. Cheers, Roderich