That's not really a wait issue. When closing a piped open filehandle, if the opened command exits with a non-zero and that's the only issue with the command, then $! is set to 0. So the code above is using the tertiary operater to check that condition. I thought that might be the issue too but the OP said it worked fine from the command line so more than likely there's either a path or permisssion issue.
In reply to Re^2: "close" failing
by derby
in thread "close" failing
by munishdev
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |