in reply to memory restiction ?

Tough one. MSDOS is a pain. Have you tried allocating more memory for the DOS box? Worse case scenario, you could have perl write a batch file (cl -c myprog.c > tmpfile) and run that in a separate window, then run your program on the results. Of course, you could do that all in the same window with an ugly batch file:
@ECHO OFF perl foobar.pl makebat ## creates TMP.BAT (the compiler) TMP.BAT ## writes it's output to TMP.TXT perl foobar.pl readresults
Bleh. Better to just mess with the memory. You might also see if there is anyway you can get C++ to be more "memory friendly"