В следующем Perl-коде массив @subset никогда не становится больше, чем 5 элементов, это похоже на то, что perl обрабатывает 400 как 4, т. Е. Четыре, а не четыреста, это похоже на то, что это игнорирование нулей после 4.Perl - сравнение чисел в цикле
Почему это происходит?
Как я могу распознать число в четыреста, чтобы оно продолжалось до тех пор, пока длина массива @subset не станет 400?
# A list of more than 1000 numbers separated by commas
my $list = '1444,99,112,1233,174,224,443,672,32,9821,...';
my $i = 0;
my @arr = split(',', $list);
# Move through the @arr copying elements to a temporary @subset array
# Do this in batches of 400
while ($i le $#arr) {
my @subset;
my $s = 1.0 * scalar(@subset);
while ($s le 400){
push (@subset, $arr[$i]);
$s = 1.0 * scalar(@subset);
$i++;
}
# Do something with the @subset array here
}
'ле' является для строк, использование '<=' для чисел. – asjo