chiark / gitweb /
Subprocess error handling: Initialise $? to -1
When system(3perl) fails due to syscall error, it sets only $!. When
it succeeds it sets only $? and sometimes trashes $!. Conversely,
close of a popened filehandle always sets both in all cases.
Document this in a comment.
So when using system and relying on $?/$! (rather than looking at
system's return value), such as when about to use failedcmd, it's
necessary to initialise $? to -1.
Fix the three call sites where system might be followed by failedcmd
but this wasn't done.