in reply to Re: Re: Re: When starting a process, at what point does "open()" return?
in thread When starting a process, at what point does "open()" return?
system(), backticks and pipe open now reflect exec failure
On Unix and similar platforms, system(), qx() and open(FOO, ``cmd |'') etc., are implemented via fork() and exec(). When the underlying exec() fails, earlier versions did not report the error properly, since the exec() happened to be in a different process.
The child process now communicates with the parent about the error in launching the external command, which allows these constructs to return with their usual error value and set $!.