in reply to Testing and system return status

Just a thought. How about changing the ok(system()) to is(system(), 1) to see what the system call is actually returning? It could conceivably be as maddening as to return the success of your redirecting the output.

Sometimes I can think of 6 impossible LDAP attributes before breakfast.

Replies are listed 'Best First'.
Re^2: Testing and system return status (was 0, shell)
by tye (Sage) on Sep 10, 2014 at 14:45 UTC

    I think that is a fine suggestion. But note that the information in question is already available:

    '10.com' --timestamp '$400;' &>/tmp/32531_stdout] did NOT return false [0] at ./test.pl line 62.

    The "[0]" part shows that the prior system() returned 0 (unless some weird thing is invoking some other child process in between).

    For the original question, I would examine the contents of the /tmp/...stdout files in the two cases.

    Also note that this invocation of system will actually invoke a shell so that it can parse the command line and it will be the shell's exit value that system() will report. So my guess is that the shell is not properly propagating the child's success/failure.

    - tye        

      You are correct. I didn't understand the significance of $? until you pointed it out.

      Sometimes I can think of 6 impossible LDAP attributes before breakfast.