Нет, не издевается. Всё верно, следуй советам.
Ни $1,$2... ни $a,$b(в сортировке) объявлять не надо.
Убедится, что они инициализированы(иными словами не undef) не лишнее. Это можно сделать как в регулярке, так и при сортировке.
Впрочем, можно и блокировать вывод предупреждений в некоторых моментах. Но тут решать только тебе.