> Behalf Of Greg Thomas>> On Thu, 22 Jun 2000 09:05:09 -0400, "Ian D. Stewart" <i...@c-cor.com>> wrote:>> > > I'm having trouble getting it to work. The culprit appears to be> > > ExtUtils::MM_Win32 - in particular the line> > >> > > $val = `$abs -e "require $ver;" 2>&1`;> >> > I suspect that output redirection at the end is your culprit. If memory> > serves, COMMAND.COM (Windows98's default shell) doesn't support named> > pipes. You may want to try upgrading your shell.>> I tried both 4DOS and Bash, and still got nowhere. However, looking> further at the line in question, I'd can't understand why it should> work. The first bit I understand;>> perl -e "require $ver;">> to check the Perl version. I'm not exactly sure what is going on with> the '2>&1' business. Had the backticks just been>> perl -e "require $ver;print 1">> I could see how $val would contain the value of 1 only with if the> Perl version was right. I guess the '2>&1' is critical, though. Anyone> kind enough to explain what should be happening, an even better let me> know how to fix it?>
2>&1 asks the shell to redirect file descriptor '2' to file descriptor 1.
Or a slightly different way to say it stderr is redirected to stdout.
It is also important to note that 'shell' in the above statement. As
someone was kind enough to point out to me not too long ago, the back tick
shell is not necessarily the same shell as what you ran the script in. I
can't recall it exactly but searching through Config.pm I found this line
sh='cmd /x /c'
And I would suppose you have something similar. And on a win 9x box that
does not allow redirection. You might try replacing that with one of the
shells you tried.