You may want to fork() before you exec, and only exec in one of the branches.
It's a funny coincidence that something very incisive to this effect, although focusing not as much on Perl functions as on the corresponding system calls, was written here quite recently. I don't know why there's this common misconception about exec: perhaps it's simply because of the suggestion given by its own name. To stress the concept, fork and exec each do very simple and not terribly useful things: but put together they act synergetically to do something very useful. In contrast under some OSen and programming languages based on them to do the same requires calling functions with really complex APIs involving dozens of parameters...