我想逐行解析一個文件,每個文件都包含兩個整數,然後將這些值求和成兩個不同的變量。我天真的做法是這樣的:如何將兩個列表按元素求和
my $i = 0;
my $j = 0;
foreach my $line (<INFILE>)
{
($i, $j) += ($line =~ /(\d+)\t(\d+)/);
}
但它產生以下警告:
在無效的情況下
沒用使用私有變量的暗示訴諸+ =操作觸發器以標量而不是列表上下文評估左側(如果我在這一點上錯誤,請糾正我)。
是否有可能實現這個優雅(可能在一行)而不訴諸數組或中間變量?
相關問題:How can I sum arrays element-wise in Perl?
你是什麼你的最後一句話是什麼意思?例如,一個兩元素數組仍然需要單獨的算術語句,除非您正在考慮重載'+ ='? – Borodin
簡單來說就像kratenko的答案中的數組。那 - 加上無限制的分割 - 適用於任意數量的列。 – daxim
+1解釋爲什麼我的「天真」的方法不起作用。 –