|Just another Perl shrine
You should be aware of the special meanings of $a and $b for sorting. Using these variables outside a sort block may lead to some surprises.
You should also change s//; to m//;. Your snippet uses the substitution operator s, while you are after the match operator m. You should in any case take a look at the documentation that has been pointed to elsewhere in this thread.