Yah, I knew/know the $a/$b bit actually (should have thought before posting), I never use either in production code. Was just making it simple for someone that was testing it for me.
I always use warnings; use strict; (there was another "forgotten" surprise from that btw :) ).
In the small snippet you showed on 5.6.1 you would not have encountered any problems. That is why I didn't specifically mention them. This is because the strict pragma ignores $a and $b since Perl uses them to allow you to build a custom sort routine.