in reply to Why do we need $a and $b to be special?

Sort data is not a fast thing to do. Generally we are sorting just a small list when using the command sort of Perl, but even for this small amout sort need to be a fast thing. So, we use a speciall variable that will point to each element in the list (array), avoiding the copy of the strings/scalars to compare them. @_ also does the same thing, but access directly a scalar ($a) is much more faster than access an element of an array (@_[0]).

Graciliano M. P.
"Creativity is the expression of the liberty".