or download this
exec()
Calling exec() within a pseudo-process actually spawns the requested e
+xecutable in a separate process and waits for it to complete before e
+xiting with the same exit status as that process. This means that the
+ process ID reported within the running executable will be different
+from what the earlier Perl fork() might have returned. Similarly, any
+ process manipulation functions applied to the ID returned by fork()
+will affect the waiting pseudo-process that called exec(), not the re
+al process it is waiting for after the exec().