That's helpful, thanks. I'll switch to IPC::Run3 I think as I don't need 
anything really tricky but I would like to keep the same code across OSes.

PK

On 23 May 2011, at 5:57 PM, Barrie Slaymaker wrote:

> On 5/23/2011 7:23 AM, Philip Kime wrote:
>> I don't really understand why this works fine unpacked but doesn't when 
>> packed ...
> As Mark said below, this happens because the IPC::Run module on Win32 (only) 
> tries to run subprocesses using $^X, which normally contains the path to 
> perl.exe. However, when PAR packs an executable, $^X doesn't happen to point 
> to perl.exe, and so IPC::Run fails at that point. Implementing IPC::Run on 
> Windows without using subprocesses is an unsolved problem.
> 
> IPC::Run::run() is almost always overkill for the tasks it's used for. I 
> wrote it and even I only use it rarely. As Roderich said, IPC::Run3 is 
> probably a faster, simpler choice. And Perl's backticks and pipe open were 
> designed for doing things like the example you show and are simpler and 
> faster than IPC::Run3 if you don't need to quote $filename or need kpsewich's 
> exit code.
> 
> - Barrie
> 

--
Dr Philip Kime

Reply via email to