Hmm, I was hoping that this was just a module dependency that needed
adding manually to the pack. The actual error I get is:

Inappropriate I/O control operation: Win32::Process::Create() at
IPC/Run.pm line 2232

So I assumed that it couldn't find Win32::Process and added it with a
--module flag but this made no difference. I don't really understand
why this works fine unpacked but doesn't when packed ...

PK

On 23 May 2011 13:11, Mark Dootson <mark.doot...@znix.com> wrote:
> Hi,
>
> IPC::Run calls $^X on windows to run IPC::Run::Win32Pump
>
> The following at the top of your script (or something like it) may work.
>
> BEGIN {
>    if($^O =~ /^mswin/i && defined($ENV{PAR_0}) && -f $ENV{PAR_0} ) {
>        my $command = join(' ', @ARGV);
>        if($command =~ / -MIPC::Run::Win32Pump -e 1 \d+ \d+ \d+ \d+ \d+ \d+
> \d+ /) {
>            while( my $arg = shift( @ARGV )) {
>                last if($arg eq '1');
>            }
>            eval{ require IPC::Run::Win32Pump; };
>            die $@ if $@;
>            return;
>        }
>    }
> }
>
>
>
>
>
> On 23/05/2011 10:13, Philip Kime wrote:
>>
>> Greetings, I am using the current Par::Packer and have a strange
>> problem. Under windows and Strawberry perl, I am using IPC::Cmd with
>> IPC::Run to run a command and get the stdout back. This works on all
>> platforms I use (Mac, Linux, Windows). As soon as I pack the program
>> for Windows, this stops working. It continues to work for all other
>> platforms.
>>
>>     scalar run( command =>  [ 'kpsewhich', $filename ],
>>                 verbose =>  0,
>>                 buffer =>  \$found );
>>
>> After packing on Windows, $found is undef. Bizarrely, if I add print
>> `kpsewich $filename` just before this, I get what I expect. Is there
>> something wrong with IPC::Run or IPC::Cmd in conjunction with
>> Par::Packer on Windows?
>>
>> PK
>>
>
>



-- 
Dr Philip Kime

Reply via email to