in reply to Re: Re^4: Confirming what we already knew (it's cached)
in thread Confirming what we already knew

Assigning to a non-tied variable throws out everything that was in the variable, including its flags, and replaces it with the value being assigned.

So in the $foo++ case, $foo's old value gets thrown out, along with all its flags, and gets a new value and flags to go with it. If $foo used to be a string and num, well, the string part's been tossed out (if it was a numeric increment) or the num part's been tossed (if it was a string increment)

Things wouldn't work too well if it were otherwise.