in reply to Re: Code and Process Efficency
in thread Code and Process Efficency
open is not missing its third argument - the 2-argument form is perfectly valid syntax. It is usually used when you want to have more control over how the command is executed, e.g. using exec. From the perldoc:
If you open a pipe on the command "'-'", i.e., either "'|-'" or "'-|'" with 2-arguments (or 1-argument) form of open(), then there is an implicit fork done, and the return value of open is the pid of the child within the parent process, and "0" within the child process.
... and taking the (slightly modified) example from perlipc:
$pid = open(KID_TO_READ, "-|") or die "fork: $!"; if ($pid) { # parent while (<KID_TO_READ>) { # do something interesting } close(KID_TO_READ) or warn "kid exited $?"; } else { # child exec($program, @args) or die "can't exec program: $!"; # NOTREACHED }
|
|---|