Originally Posted By: Khaled
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.


By design ! should negate anything that follows it. !(1) for example. It shouldn't limit itself to just identifiers and variables. W/O consistent behavior ppl like myself don't like using this as testing if something is false since it's unpredictable.

Prior to adding the ! negate syntax I used to have an identifier $not which would negate whatever was enclosed. Then you added the bitwise identifier $not and it totally broke my identifier. I changed it too $isnot but your reason that making a change will break existing scripts just isn't going to fly high with me over this. No matter what you do you are going to break something.