Finally got this thing working, but i had to switch the order of where i put the "2>&1" :)
Here's an example of reading my current apache virtual host config. (See, i had the same trouble reading system output from apache as i did from sendmail).
open(CHK,"httpd -S 2>&1 |") || die "error vhosts $!\n";
while (my $li = <CHK>){
print "--$li\n";
}close CHK;
jtrue