From the documentation on system:
Does exactly the same thing as exec LIST , except that a fork is done first and the parent process waits for the child process to exit.
Another alternative would be to use backticks instead of system. I personally consider this as a "quick" and "dirty" method even though I do use it a lot. There are some potential problems with using this method. Off hand I don't remember what all of the issues are, but I believe that there are better ways to launch another program and return control back to the Perl script without waiting for the launched program to return control.