使用しているテキストファイルから行を削除するための次のコードがあります。ただし、実際には必要な行を削除しているわけではありません。ここで多くのテストを行い、行番号を正しく取得すると行が削除されることを確認しました。ただし、$.
実際の行番号が重複しているようです(印刷すると、実際の行数は2倍になると表示されます)。
#!/usr/bin/perl
# find_company_codes.pl
use strict;
use warnings;
use diagnostics;
use Tie::File;
my $split_file = "//server/folder/splits_table.txt";
# remove fields where only MAS has rollcall
my @file;
my @lines;
tie @file, 'Tie::File', $split_file or die $_;
foreach (@file) {
@lines = split(",",$_);
next if $lines[0] eq "ESDB Link Processing Reg-Prd-CCD";
next if $lines[2] ne "";
next if $lines[3] ne "";
next if $lines[4] ne "";
next if $lines[5] ne "";
next if $lines[6] ne "";
splice(@file, $.,1);
}
untie @file;
ps-これを使用できることはわかっていますが、この場合、「Tie::File」を使用する方がもう少し簡単だと思いました。