Вопрос к бывалым перловикам, которые не гнушаются использовать fork(). Допустим есть несколько функций (myfunc1, myfunc2 и myfunc3). Каждая из этих функций должна работать в отдельном процессе. Только после того, когда отработают все функции - программа должна завершиться. Но у меня она остается висеть и вообще, видимо я что-то делаю не так.
...
use POSIX ":sys_wait_h";
$SIG{CHLD} = sub {1 while( waitpid(-1, WHONANG) > 0 )};
sub myfunc1 {print "Hello 1\n";}
sub myfunc2 {print "Hello 2\n";}
sub myfunc3 {print "Hello 3\n";}
for ((\&myfunc1, \&myfunc2, \&myfunc3)) {
if (my $pid = fork()) {
$_->();
waitpid($pid, 0);
}
}
print "THE END\n\n";
Все висит - ничего не помагает. Подскажите, как поправить код, чтобы оно заработало как надо?