Я в тупике от этого и явно отсутствует что-то основное. Кажется, что perl sort не работает с определенным набором значений. Вот часть тестового кода:Тип Perl не работает, как ожидалось, по числовым значениям
use strict;
my $i = 7;
my $j = 8;
my $k = 4;
print "before:$i:$j:$k\n";
my @p = ($i, $j, $k);
($i, $j, $k) = sort(@p);
print "after:$i:$j:$k\n";
print "######################################\n";
my $i = 23;
my $j = 24;
my $k = 7;
print "before:$i:$j:$k\n";
my @p = ($i, $j, $k);
($i, $j, $k) = sort(@p);
print "after:$i:$j:$k\n";
print "######################################\n";
Как вы можете видеть, оно работает, когда входные значения (7: 8: 4). Кажется, что не работает, когда значения (23: 24: 7)!
before:7:8:4
after:4:7:8
######################################
before:23:24:7
after:23:24:7
######################################
Сохранение массива обратно в отдельные переменные кажется немного странным, а не тем, что вы, вероятно, сделали бы в реальной программе. Вы можете просто напечатать массив: 'print 'после: @p \ n" ' –