Вы звоните sortF
прямо здесь:
my @sortedresults = sort(sortF(@results));
когда вы хотите сказать sort
, чтобы использовать sortF
в качестве функции сравнения:
my @sortedresults = sort sortF @results;
Сначала вы вызываете sortF(@results)
и передаете результат вызова этой функции на sort
. Но и $a
, и $b
будут пустыми внутри sortF
, потому что sort
не настроил их, это означает, что и $l1
, и $l2
будут пустыми и $l1 <=> $l2
будет нулевым Так что ваш
my @sortedresults = sort(sortF(@results));
становится:
my @sortedresults = sort(0);
и вот откуда приходит сообщение об ошибке.