У меня есть текстовый файл, содержащий следующие строки, как, напримерДобавить заголовки в виде текстового файла в Perl
This is line
This is line with test
This is ine with 2test
This is line 2
This is line 3
This is line with 3test
This is line 4
This is line with 4test
Теперь я хочу код, чтобы изменить текстовый файл следующим образом:
Lines with test
This is line with test
This is ine with 2test
This is line with 3test
This is line with 4test
Lines without test
This is line
This is line 2
This is line 3
This is line 4
Я использую следующий код. Я предполагаю, что мой код будет печатать заголовок с каждой строкой, но я не могу выполнить код из-за некоторых ошибок. Не могли бы вы помочь мне?
#!/usr/bin/perl
use strict;
use warnings;
open(FH, '<filetest.txt');
my @queues = <FH>;
close(FH);
open(OFH,'>testfile.txt');
my $name;
foreach $name(@queues)
{
if($name =~ 'test')
{
print OFH "Lines with test\n";
print OFH $1;
}
else{
print OFH "Lines without test\n";
print OFH $1;
}
close(OFH);
}
Примечание: я исправил ошибку, чтобы удалить синтаксические ошибки, но до сих пор нет ничего записываются в файл testfile.txt
«из-за некоторые ошибки» - синтаксические ошибки, чтобы быть точными. Подсказка: источник ошибки может быть немного раньше места, где сообщалось об ошибке. Также обратите внимание, что '#' начинает комментарий строки, и что регулярные выражения должны использовать какую-то цитату из регулярного выражения, например '/ foo /'. Но даже после этого ваш код имеет различные ошибки. (1) Чтение и запись в тот же файл сразу не сработает. (2) Вы используете устаревший синтаксис для 'open' и не выполняете проверку ошибок. (3) '$ 1' не будет заполнен. Используйте '$ _'. (4) Вы выводите заголовок для * каждой строки *. Вместо этого сначала помещаем строки в массивы. (...) – amon