A very nice module that makes this simple on Windows and Linux, as well as allowing you to either ignore or wait on a process, is Proc::Background. Use this if you can, and only worry about fork and exec if you need to run arbitrary code in those places. If you are doing system calls, Proc::Background is for you.