Well, this post is rather old. I am returning to Programmers Heaven, so I just saw it.
Ok, my sugesstion is that you could create two pipe files. You would perform this outside from your program. You can see how here
Then, you will start the execution of your Perl script and instruct it to read/write from/to the pipes that you created. In your C program, you will open both pipes too. Then, all the communication between the perl script and C executable will happen through the pipes. You need to start the perl script only once (I don't know how the script or, to tell the truth, how Perl works).
Hope it helps!