In the following in Perl script:
$a=apple
$b=orange
if ($?==0) {
# do something
}
What does $? mean here?
$? or $CHILD_ERROR (if use English) contains the status of the last backtic (or several means of running a child process from Perl.) See perlvar for a full explanation.
Others have answered the question about the meaning of $?.
I thought I would also mention that it is also possible to get help on Perl's special variables at the command prompt:
perldoc -v $?
Depending on your shell, you may need to escape the $.
perldoc -h
$?, along with all the other "magic" variables, is documented in the perlvar section of the Perl manpages. If you don't actually have a Unix-like setup with the man command, you should also be able to Google for man perlvar.
This is the status returned by the last system operation, pipe, or backtick operation. See reference perlvar.