我在下面有一個這樣的文件,其中以數字開頭的行是我的示例的ID,以下行是數據。如何比較在while循環內讀取的文件的兩行(如果它們相等或不相等)?
10001;02/07/98;;PI;M^12/12/59^F^^SP^09/12/55
;;;;;M1|F1|SP1;9;9;9;9;9;9;;D16S539
;;;;;M1|F1|SP1;9;9;9;9;9;9;;D7S820
;;;;;M1|F1|SP1;9;9;9;9;9;9;;D13S317
;;;;;M1|F1|SP1;9;9;9;9;9;9;;D5S818
10002;02/07/98;;RJ;F^20/04/86^SP^
;;;;;F1|SP1;;;12;10;12;11;;D10S212
;;;;;F1|SP1;;;8;8;10;8;;D7S820
;;;;;F1|SP1;;;12;11;14;11;;D13S317
;;;;;F1|SP1;;;13;12;13;8;;D5S818
對於包含數據的線,我想測試的字段6-11是否是相同的,因爲我想要的數據,只有當他們是不等於彼此(在第一他們都是'9')。
所以我想分割線條並將它們存儲爲一個數組,然後將數組與〜運算符進行比較。但是,如果我正在讀取while循環內的文件並且每個行都重新定義了數組,我該怎麼做? 或者也許有更好的方法來做到這一點。
在此先感謝!
這是爲了說明我想做一個僞代碼:
open FILE, $ARGV[0] or die $!;
while (<FILE>) {
chomp;
my @field = split /;/;
if ($field[0] eq '') {
if @fields[6 .. 11] is not equal to @fields[6 .. 11] in all the next lines {
do my calculation;
}
}
}
你的意思是你想檢查** **所有的這些線是相同的,或者**任何**線是相同的? – TLP
是的,我想檢查它們是否完全相同。 – vitor
隨着ikegami的回答,似乎你只是想比較領域......當我問,你想比較*線*。這是什麼? – TLP