=over =item fork Does a fork(2) system call. Returns the child pid to the parent process, C<0> to the child process, or C if the fork is unsuccessful. Note: unflushed buffers remain unflushed in both processes, which means you may need to set C<$|> ($AUTOFLUSH in English) or call the C method of C to avoid duplicate output. If you C without ever waiting on your children, you will accumulate zombies: $SIG{CHLD} = sub { wait }; There's also the double-fork trick (error checking on C returns omitted); unless ($pid = fork) { unless (fork) { exec "what you really wanna do"; die "no exec"; # ... or ... ## (some_perl_code_here) exit 0; } exit 0; } waitpid($pid,0); See also L for more examples of forking and reaping moribund children. Note that if your forked child inherits system file descriptors like STDIN and STDOUT that are actually connected by a pipe or socket, even if you exit, then the remote server (such as, say, httpd or rsh) won't think you're done. You should reopen those to F if it's any issue. =back