我需要一种方法来获取 .csv 文件中一行中的数字并将它们相乘,然后将每一行的乘积相加得到一个数字。我的 .csv 文件看起来像:
1,1
2,3
3,4
我知道答案应该是 19,但我不确定如何在 Perl 中准确地对其进行编程。我通过以下方式将两个数字分成不同的变量:
($x,$y) = 拆分 (/,/, $line)
我已经读过文件和所有这些,我只需要我的代码的这一部分的帮助。如果有人能指出我正确的方向,我将不胜感激。
我需要一种方法来获取 .csv 文件中一行中的数字并将它们相乘,然后将每一行的乘积相加得到一个数字。我的 .csv 文件看起来像:
1,1
2,3
3,4
我知道答案应该是 19,但我不确定如何在 Perl 中准确地对其进行编程。我通过以下方式将两个数字分成不同的变量:
($x,$y) = 拆分 (/,/, $line)
我已经读过文件和所有这些,我只需要我的代码的这一部分的帮助。如果有人能指出我正确的方向,我将不胜感激。
一个天真的解决方案可能如下所示:
use strict;
use warnings FATAL => 'all';
my $total;
open(my $fh, '<', "temp.csv");
while( my $line = <$fh> ) {
my ($x, $y) = split(',', $line);
$total += ($x * $y);
}
print "Total is: $total\n";
简而言之
perl -F, -anE'$s+=$F[0]*$F[1]}{say$s'
my $sum = 0;
open my $csv, '<', $filename or die $!;
while(my $line = <$csv>) {
my $prod = 1;
$prod *= $_ for split ',', $line;
$sum += $prod;
}