* Stephan Brunner <[EMAIL PROTECTED]> [2005-08-30 22:45]:
> On Windows XP (ActiveState / 5.8.0), the usage of @cmd causes a
> "List form of pipe open not implemented" error. Using
> 
> my $pid = open my $child, '-|', $cmd
>              or die "can't fork convert: $!";
> 
> instead works fine, but filenames (containing blanks) must now
> be quoted.

Ugh. Yeah, DOS/Win32 doesn’t have a list of arguments, it only
has a single string.

Each program that wants a list has to parse that flat string
itself. This is, of course, because DOS filenames used to be 8+3,
with many characters disallowed, incl. spaces, so splitting on
spaces was enough, once upon a time.

That’s the kind of brokenness that happens when you try to grow
from toy to serious…

Something like

    open my $child, '-|', join( ' ', map qq["$_"], @cmd )

should work, I think, but I don’t have a Windows box to test
with.

Regards,
-- 
#Aristotle
*AUTOLOAD=*_=sub{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1};
&Just->another->Perl->hacker;
_______________________________________________
gtk-perl-list mailing list
gtk-perl-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

Reply via email to