Почему нет ошибки, выданной strict:
strict
use strict; $a = $a + 1;
$ a и $ b - это специальные глобальные переменные, используемые sort, поэтому они всегда определены. Попробуйте вместо этого использовать $ c, и вы получите ошибку.
sort
Хотя strict не жалуется на специальные переменные $a и $b, perlcritic обнаружит их использование:
$a
$b
Магические переменные должны быть назначены как "местный" ... (уровень серьезности: 4)
$a - это специальная глобальная переменная. Это не должно быть объявлено. См. perldoc perlvar .
В Perl есть несколько глобальных переменных. Здесь $a и $b используются в функции sort .
Я думаю, вы могли заметить, как в этом утверждении:
sort { $a <=> $b } @array_name ;