您能否提供有关以下perl代码段的详细说明.我从谷歌得到了一些想法,但仍有很多基本的混乱.如果你可以提供小笔记,那将是很有帮助的
$exit_value = $? >> 8;
$signal_num = $? & 127;
$dumped_core = $? & 128;
Run Code Online (Sandbox Code Playgroud)
if ($? == -1) {
print "failed to execute: $!\n";
}
elsif ($? & 127) {
printf "child died with signal %d, %s coredump\n",
($? & 127), ($? & 128) ? 'with' : 'without';
}
else {
printf "child exited with value %d\n", $? >> 8;
}
Run Code Online (Sandbox Code Playgroud)
该$?语义取自wait系统调用,见man 2 wait.