-1

次のファイルがあります。

10001;02/07/98;;PI;M^12/12/59^F^^SP^09/12/55
;;;;;M1|F1|SP1;11;10;12;10;12;11;1.82;D16S539
;;;;;M1|F1|SP1;8;8;8;8;10;8;3.45;D7S820
;;;;;M1|F1|SP1;14;12;12;11;14;11;1.57;D13S317
;;;;;M1|F1|SP1;12;12;13;12;13;8;3.27;D5S818
;;;;;M1|F1|SP1;12;12;12;12;12;8;1.51;CSF1PO
.
.
.

以下のコードを実行する$indiv[0]と、ファイルの行ごとに の値が 1 つ出力されます (この場合はM1M1M1M1M1M1...)。これらの値の1つを使用したいだけです。最初、最後の値などになる可能性があります。print $indiv[0]ループの外側で使用して最後の値を取得できることはわかっていますが、そうではありません。これprintは単なる例です。必要ですループ内の他の計算に値を使用します。

では、while ループ内に保持しながら、1 つの値 (1 行のみ) にアクセスするにはどうすればよいでしょうか?

前もって感謝します!

#!usr/bin/perl
use warnings;
use strict;

my @indiv = ();

open FILE, $ARGV[0] or die $!;

while (<FILE>) {
chomp;
my @field = split /;/;
    if ($field[0] eq '') {@indiv = split /\|/, $field[5];  
    print $indiv[0];
    }
}
4

1 に答える 1