我有一个行列表(大约 2K),我需要根据某些标准将其与更大的列表进行比较并保存结果。所以我正在做的是:
foreach( keys %lines1 )
{
($orig1,$orig2,$orig3) = (split( /,/, $lines1{$_}))[1,2,3]
push( @result, grep{ ($data1,$data2,$data3) = (split( /,/, $lines2{$_})[1,2,3];$orig1 == $data1 && $orig2 == $data2 && $orig3 == $data3 } keys %lines2 );
$hash_result{$count} = @result;
}
问题是@result
积累数据。所以第一次运行它的大小是 1,第二次数据被推送并且大小是 2:旧行匹配和新行匹配。
我觉得我错过了一些明显的东西,但不记得是什么。
两个列表都来自与 CSV 相同的文件。它们在一个领域有所不同。
输入:
data1,data2,data3,data4,data5,data6,data7,data8,0 - $line1
data1,data2,data3,data4,data5,data6,data7,data8,1 - $line2
有几行 type $line1
。
输出:在输出中它可能应该是列表列表的散列,任务是:为每个$line1
匹配计算一些统计信息。
有人可以帮忙吗?
或者也许我做错了?
[编辑]
我在这里寻找的是这样的:
“$hash_result{$count} = [[1,2,3,10,4,6][1,2,3,5,3,11][1,2,3,100,60,20]]”
这样我就可以计算 $count 行上的一些统计数据。
[/编辑]