I'm aware of both the %ERRORLEVEL% and $? values but do not know if these will work.Why would you think that $? might not work? It is documented as
For redirecting your output, the syntax you're using is Unix shellian. It shouldn't work on NT. You can reopen STDOUT and STDERR, though, prior to the system calls, and restore the old file handles as necessary:The status returned by the last pipe close, backtick (``) command, successful call to wait() or waitpid(), or from the system() operator.
open my $oldout, '>&STDOUT' or die "Duping STDOUT: $!\n"; open my $olderr, '>&STDERR' or die "Duping STDERR: $!\n"; open my $log, '>errorlog' or die "Opening errorlog: $!\n"; while(<LISTFILE>) { chomp($FILE=$_); # You do probably want to remove the newline # Let's do it print "Importing $FILE.\n"; open STDOUT, '>&', $log or die "Redirecting STDOUT: $!\n"; open STDERR, '>&', $log or die "Redirecting STDERR: $!\n"; system("mysql < $FILE"); open STDOUT, '>&', $oldout or die "Restoring STDOUT: $!\n"; open STDERR, '>&', $olderr or die "Restoring STDERR: $!\n"; print "Sleeping for 5.\n"; system('sleep 5'); } close $log;
In reply to Re: Need to capture return code
by Roy Johnson
in thread Need to capture return code
by James_Marcinek
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |