you must receive an error even without warnings enabled:
Can't use "my $a" in sort comparison at pmonks06082015.pl line 4.
In short, never use $a and $b in your programs. It is explicitly mentioned in perlvar
Special package variables when using sort(), see sort. Because of this
+ specialness $a and $b don't need to be declared (using use vars , or
+ our()) even when using the strict 'vars' pragma. Don't lexicalize th
+em with my $a or my $b if you want to be able to use them in the sort
+() comparison block or function.
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.