in reply to Perl quiting a progarm

Sending SIGINT can be done using kill INT => $pid. There are also ways to run the child asynchronously. One question would remain: When would it be appropriate to send SIGINT?

Just guessing, but a simpler and more effective solution might be to signal EOF to the child's STDIN.

system("prog name -f file_$x_$y.ext < /dev/null > tracker_$x$y.log");

Or maybe even

system("prog name -f file_$x_$y.ext <&- > tracker_$x$y.log");

(I'm assuming unix from your bash reference, but I suppose you could be using cygwin.)