This HTTP daemon does not fork(2) for you. Your application, i.e. the user of the HTTP::Daemon is reponsible for forking if that is desirable. #### my $d = HTTP::Daemon->new || die; while (my $c = $d->accept) { my $childPID; unless (defined $childPID = fork) { # error handling here... next; } if ($childPID == 0) { # we're the child, # your processing code here... } # we're the parent, go back and wait # for another request... }