0

次のデータの各行を読んでいるとします。

40556;20/02/2001;;MG;M^12/08/67^F^16/03/89^SP^14/02/61
;;;;;M1|F1|SP1;12;11;11;7;7;12;54.340;CSF1PO
;;;;;M1|F1|SP1;8;6;6;8;8;8;2.036;TPOX
;;;;;M1|F1|SP1;8;9.3;9.3;9;9;9.3;3.077;TH01
;;;;;F1|SP1;;;7;9.3;9.3;9.3;2.419;TH01
;;;;;F1|SP1;;;16;18;18;17;1.361;vWA
;;;;;F1|SP1;;;9;16;16;15;1.366;D18S51
40555;20/02/2001;;MG;F^23/06/2000^SP^01/09/64
;;;;;F1|SP1;;;11;13;12;12;Exclusão;D16S539
;;;;;F1|SP1;;;12;8;9;9;Exclusão;D7S820
;;;;;F1|SP1;;;14;10;9;9;Exclusão;D13S317
;;;;;M1|F1|SP1;13;14;14;14;14;12;-;D16S539
;;;;;M1|F1|SP1;10;8;8;9;8;11;Exclusão;D7S820
;;;;;M1|F1|SP1;12;12;12;8;11;11;Exclusão;D13S317

次のように行を分割します。

my @fields = split /;/;

空のスペース ($fields[0] eq "") で始まる行には、一種のパ​​ターン (M1|F1|SP1 または F1|SP1) があり、以下の行では別の種類に変更されていることに注意してください。 .

最初の行と比較して、パターンが変更されたときに行をスキップしたいと思います。ループ内でこのデータを読み取っています。そのため、別のパターンになったらループを再開するか、数字で始まる次の行に移動するとよいでしょう。どうやってやるの?

4

1 に答える 1