Считайте этот тривиальный пример ветвления () лугом, затем ожидая ребенка для смерти в Perl:
#!/usr/bin/perl
use strict;
use warnings;
if (fork() == 0) {
exit(1);
}
waitpid(-1,0);
print $?;
При запущении скрипта на Солярисе 10 я получаю этот результат:
$ perl test.pl
256
Я подозреваю, что значения смещаются вверх потому что, когда я делаю exit(2)
в ребенке вывод становится 512
.
Я, может казаться, не нахожу, что это зарегистрировало в waitpid perl. Действительно ли это - ошибка в моей системе, или я делаю что-то не так?
Это описано в разделе $?
справочной страницы perlvar .
т.е. настоящий код выхода $? >> 8
.