2013-07-12 150 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' 
相關問題