2013-07-12 120 views
2

我需要一种方法将我的.csv文件中的一行中的数字相乘并将它们相乘,然后将每行中的产品添加到一起以得到一个数。我的.csv文件看起来像:如何将每行csv文件中的数字相乘并相加

1,1
2,3
3,4

我知道答案应该是19岁,但我不知道究竟如何使用Perl进行编程。我有两个号码分成不同的变量是:

($ X,$ Y)=拆分(/,/,$线)

我已经阅读文件和所有,我只需要帮助我的代码的这一部分。 如果任何人都可以指出我正确的方向,我会非常感激。

回答

2

幼稚溶液可能看起来像这样:

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"; 
+0

$总+ =($ X * $ y)基正是我所期待的。谢谢! – R0drom

1
my $sum = 0; 

open my $csv, '<', $filename or die $!; 

while(my $line = <$csv>) { 
    my $prod = 1; 
    $prod *= $_ for split ',', $line; 
    $sum += $prod; 
} 
2

在短形式

perl -F, -anE'$s+=$F[0]*$F[1]}{say$s' 
相关问题