in reply to Re^4: "use strict" sets $!
in thread "use strict" sets $!

Isn't "at all" too strong here?

Perhaps a bit too strong. It depends where one chooses to find meaning. If one seeks meaning in the system interface specification then there is none. The specification is clear that a successful system call may change errno and may leave it with any value and defines no meaning for any value of errno after a successful system call. To this extent, the value of errno after a succesful system call has no meaning.

Yet, if errno is set by a successful system call there is some reason - it has something to do with the implementation of the system call. One can find meaning in the code of the system call. But any such meaning might be highly implementation specific.