in reply to Need to capture return code

The Perl system command gives the return code of the process call in the upper byte of a two byte word. Right shifting this code 8 bits will give you the return code of the operation.
... # some code print "Importing $FILE.\n"; $rtncd = system("mysql < $FILE") >> 8; # shift right 8 bits to recov +er actual code if($rtncd == 0){ ... # everything OK }else{ ... # some problem ? } print "Sleeping for 5.\n"; system('sleep 5'); ... #more coce
If you want to capture the output of the mysql call, use backticks or qx// such as $rtncd = `mysql < $FILE`;. Often, when the actual program return code isn't helpful (for example my program fails gracefully which annoyingly produces a clean return code of 0) I have the program print an error message or error code and then capture that output via backticks. It works pretty well.

PJ
use strict; use warnings; use diagnostics;