The macro STATUS_NATIVE_SET on VMS is currently setting any VMS warning status to a PL_statusvalue of 256, which is translated to $! of "invalid file number".

VMS status & 1 = success
VMS ((status & 7) == 0) = Warning
VMS ((status & 7) == 2) = Error
VMS ((status & 7) == 6) = Fatal Error.

Determining what $! text to generate correctly will require a more complex algorithm unless you want to just let VMS translate it.

Also if the program is in one of two UNIX compatibility modes, the VMS status may already be in UNIX format where the bit patterns are incorrect for VMS, or need a special POSIX translation,

This is affecting the tests that are checking the return values from system() calls in perl.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to