perl初心者です。宜しくお願い致します。
ファイルの容量が大きく。perlを使用してデータの集計をしています。
"A"がきたらflag1をたてなさい。
"B"がきたらflag2をたてなさい。
"C"がきたらflag3をたてなさい。
これでAとBとCを抜き取ること&AからCまでの時間を取得したのですが、
Bの数のmaxの値だけを抜き取りたいのですが、Bがきたときの数をすべて
出力してしまいます。下記の文だと、Bが4回きたら、1,2,3,4と出力してしまいます。
それで4だけを出力したいのですがどのように書き換えたらようか教えて頂けますでしょうか。
'-----------------------------------------------------------------------------
open (IN,"< $ARGV[0].txt") or die;
open (OUT,"> $ARGV[0]_out.txt") or die;
$flag =0;
my $a, $b, $c;
$count = 0;
#######################################################
while($line =<IN>){
($time,$data) = split(/\s+/,$line);
if($data eq "A") {
$flag=1;
$a = $time;
#print OUT $line;
#print OUT "\n";
}
elsif($data eq "B"){
$flag=2;
$count++;
$count == $data;
print OUT ("$count\n")
}
#print OUT ("$count\n");
elsif($data eq "C"){
$flag=0;
$count=0;
$b = $time;
$c = $b - $a;
print OUT ("time $c\n")
}
}
-------------------------------------------------------------------------------
お礼
キンコーズは名前だけ聞いた事があったのですがこんな方法があったんですね。オンライン入稿が出来ると言うのも便利でいいですね。 ありがとうございました!!