As far as I can tell the results are correct. The ! prefix negates the values of $identifiers and %variables when used in comparisons - this is by design. It has worked this way ever since it was added in 2001. Is there some reason that you want it changed? I don't think it would be possible to make such a change without breaking existing scripts.