Я пытаюсь отобразить только таблицу и несколько столбцов из текстового файла. Тем не менее, текстовый файл содержит несколько таблиц, и я не знаю, как извлечь только таблицу без жесткого кодирования номера строки (строки). Ниже показано, как выглядит часть таблицы, есть некоторые с 20 строками. Другие таблицы выглядят так же с другими именами заголовков.
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------------+
| Query Name | TEV | CRV | GWB | UDW | RWE | CWO | UAD | RAO | CAG | RRV | SV | Run status |
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------------+
| abc | 3 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | must | OK |
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------------+
Это задание, которое я получил, которое требует, чтобы я отображал только несколько указанных пользователем столбцов из таблицы. Однако в текстовом файле существует более 4 таблиц. Я попытался взять только номер строки, который включает таблицу, разделить их на массив и отобразить в соответствии с тем, какой столбец хочет пользователь, но мой преподаватель хочет, чтобы я перешел в динамическое состояние, а не в жестком коде, потому что он хочет, чтобы я учитывал другие возможность отображения другой таблицы тоже.
open(FH, '<', $filename) or die $!;
my $count = 1;
my @column = [];
while(my $lines = <FH>){
@column = split (/\|/, $lines);
if (($count >=68) && ($count <104)) { #68 to 104 are the rows for
#the table i am trying to display
print "$column[1]";
print "$column[2]";
print "$column[11]";
print "\n";
}
$count = $count + 1;
}
close(FH);
Вывод правильный, но, как я уже говорил, мой преподаватель не хочет, чтобы он был жестко запрограммирован. У меня очень ограниченные знания в области программирования и Perl. Я хотел бы заранее поблагодарить вас за то, что вы уделили мне немного вашего драгоценного времени.