#perl
#perl
Вопрос:
Мой вывод имеет много значений. Но суммируйте конкретные значения. Мой ответ из скрипта выглядит так
# $ans
3.801
5.381
16.26
3.801
18.3
3.80
5.151
5.636
6.732
.
.
.
my $sum;
if($ans <= 8)
{
$sum = $ans;
print "$ansnnn";
}
print "Total value below (8) : $sum";
Как суммировать ответ ниже 8 вне условия if? Как я могу это сделать?
Ответ №1:
Другой способ, для которого не нужен модуль.
use strict;
use warnings;
my $sum;
$_ < 8 and $sum = $_ while <DATA>;
print "Total value below (8): $sumn";
__DATA__
3.801
5.381
16.26
3.801
18.3
3.80
5.151
5.636
6.732
вывод
Total value below (8): 34.302
Ответ №2:
Просто используйте grep для фильтрации чисел, которые вам не нужны из вашего списка, а затем используйте List::Util qw(sum)
use strict;
use warnings;
use List::Util qw(sum);
my $sum = sum grep {$_ < 8} <DATA>;
print $sum;
__DATA__
3.801
5.381
16.26
3.801
18.3
3.80
5.151
5.636
6.732
Выводит:
34.302