in reply to Synchronizing Multiple System Processes

Another alternative might be to use a pipe:
system("perl script1.pl input.txt - |". "perl script2.pl - finalout.txt");
This assumes that the scripts are using ordinary open to open the output.txt file, which I assume is temporary and not really required.