$a and $b in a sort will not overwrite a global or block-level $a or $b. $a and $b are local to the sort. So this is not a concern. Forgetting to properly scope $a and $b is a bigger concern. I guess it would be hard to misspell them, so scratch that off the list of drawbacks to this "feature" :-)
in reply to use strict won't require explicit name for all variables?
Just keep the behavior of $a and $b in mind, or better don't use them as variable names, cause there's always something more descriptive than a one letter name.
As an aside when I first read about sorts I was like "yeah but where are $a and $b defined?"