in reply to Re: Case-preserving substitutions
in thread Case-preserving substitutions
What did you do, golf mine? :)
I was unaware at that property of ^, very nice... in fact, I'm not ever sure why that works. Time for me to hit perlman:perlop.
Ok, its like this: ^ is XOR. That means the bit returns true if and only if one of the 2 bits is true:
In short - an incredibly concise way of doing it. ++!lc $new # lowercase the replacement ^ $1 # XOR with $1 - will increase the values by # the corresponding ascii value of each character # of $1 ^ lc $1 # XOR with lc $1 - basically, it will subract the # ascii values of lowercase $1 - if the values were # lowercase to begin with, the resulting sum is 0, # otherwise, the increase is enough to uppercase # the corresponding character