in reply to How to "transfer control" to child process?
and see if Perl itself starts telling about anything odd or finding any mistakes.use warnings; use strict;
I see that you invoke the program with a line containing << !. That changes STDIN to read from something else (I'm not familiar enough with ksh to know if ! has a special meaning or is the name of a file). That stays in effect through all the programs called down through system, so the use of STDIN won't prompt the user but will keep reading from ! (whatever that is).
What is the purpose of that? I don't see your main script reading anything from STDIN itself.