in reply to Perl CGI on WinXP - Dos 'bad file descriptor'

I'm having a vaguely similar problem. Perhaps what I found might help you out. What i was seeing was that this code snippet would fail with "Bad file descriptor" on XP (works fine on W2K):
delete $ENV{PATH}; # for taint mode open ( CMD, '/tools/usr/local/wbin/ls.exe / 2>res.txt |' ) || die $!; while ( <CMD> ) { print; } close ( CMD );
Any of these changes allow the program to run:

1. remove the redirect of STDERR
2. remove the delete of the PATH envar
3. set the PATH (rather than delete it) to
$ENV{'PATH'} = 'C:/WINDOWS/system32;';
Yes, this last one is not good and I'm not sure what executable is being run from there or DLL being loaded. (strace for Windows?) Anyway, I know this isn't exactly your problem but maybe it will give you some ideas.

- Mike