Hi Jeff,
 
Thanks for your response!  Yes, the path to perl is correct.
 
If I change the path to a bad location, then the error.log has this different error:
[Thu Nov 12 12:55:48 2009] [error] (OS 3)The system cannot find the path specified.  : mod_fcgid: can't create process
[Thu Nov 12 12:55:48 2009] [warn] (OS 3)The system cannot find the path specified.  : mod_fcgid: spawn process c:/perl/bin2/perl.exe error
Here is foo.pl
 
#!c:/perl/bin/perl.exe
use CGI::Fast;
while (my $q = CGI::Fast->new) {
  print("Content-Type: text/plain\n\n");
  foreach $var (sort(keys(%ENV))) {
    $val = $ENV{$var};
    $val =~ s|\n|\\n|g;
    $val =~ s|"|\\"|g;
    print "${var}=\"${val}\"\n";
  }
}
Thanks!
Brian

--- On Thu, 11/12/09, Jeff Trawick <trawick@gmail.com> wrote:

From: Jeff Trawick <trawick@gmail.com>
Subject: Re: pipe has been ended. : mod_fcgid: get overlap result error
To: dev@httpd.apache.org
Date: Thursday, November 12, 2009, 12:34 PM

On Thu, Nov 12, 2009 at 9:50 AM, Brian Kodl <bkodl@yahoo.com> wrote:
Hello,
 
Please help, what am I doing wrong? I can't get the example to work from http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
 
Thanks!
Brian
 
Error.log contains:
[Wed Nov 11 15:57:27 2009] [warn] [client 192.168.21.21] (OS 109)The pipe has been ended. : mod_fcgid: get overlap result error
[Wed Nov 11 15:57:27 2009] [error] [client 192.168.21.21] Premature end of script headers: foo.pl
 

I'd guess this is related to the shebang line processing, and that foo.pl isn't getting started.

Is the path to perl correct in foo.pl (maybe it should be "#!/perl/bin/perl")?  Do you need "ScriptInterpreterSource registry" to tie .pl files to the Perl interpreter, ignoring the shebang line?