thanks monk,
for example, if i write a C program as below:
main()
{
exit(100);
}
then, i invoke it from perl, and print the exit code, it's 25600. it convert to binary is: 1100100 00000000. so the high 8 bits is: 1100100(100), and the low 8 bits is: 00000000. if this C programm ran abnormally, the low 8 bits may contain info of interest, so use $? & 127 OR $? & 128. am'i right?