ファイルから読み取り、それを繰り返し処理し、その行を別のファイルに書き込む必要があります。行数がしきい値に達したら、出力ファイル ハンドルを閉じて、新しいファイル ハンドルを開きます。
以下のように、入力ファイルハンドルから行を読み取るたびに出力ファイルハンドルを開いたり閉じたりしないようにするにはどうすればよいですか?
use autodie qw(:all);
my $tot = 0;
my $postfix = 'A';
my $threshold = 100;
open my $fip, '<', 'input.txt';
LINE: while (my $line = <$fip>) {
my $tot += substr( $line, 10, 5 );
open my $fop, '>>', 'output_' . $postfix;
if ( $tot < $threshold ) {
print {$fop} $line;
}
else {
$tot = 0;
$postfix++;
redo LINE;
}
close $fop;
}
close $fip;