karpatov has asked for the wisdom of the Perl Monks concerning the following question:

Hello,

I am trying to run a perl script but I get "List form of pipe open not implemented at Line 141" under Active v5.12.3 built for MSWin32-x64-multi-thread. I tried Strawberry also but I am getting other errors.


Is there some possibility to replace the code with the problematic pipe by something else?
open DH, '-|', 'ct-energy', -s => $suffix, "$prefix.ct" or die "Can't +execute ct-energy: $!";

thanks

Replies are listed 'Best First'.
Re: List form of pipe open not implemented at
by Corion (Patriarch) on Apr 30, 2011 at 13:42 UTC

    It is just as the error message says. You are trying to use the list form of pipe-open:

    open DH, '-|', ... # this is the list form of pipe-open

    ... and on Windows Perl, this is not implemented. End of the story.

    As an alternative for your case, maybe you want to use the string-form of pipe open?

    my $cmd = "ct-energy -s $suffix ${prefix}.ct"; open my $dh, "$cmd |" or die "Can't launch [$cmd]: $! / $?"; while( <$dh>) { ... };

    Also see open and perlport.

Re: List form of pipe open not implemented at
by eserte (Deacon) on Dec 19, 2011 at 07:05 UTC
    You can try to use IPC::Run. I just did so for a test script in App-psort because of the same problems