Как я могу условно вставить строки при использовании Tie :: File? - PullRequest
1 голос
/ 14 июня 2010

Как я могу изменить этот код, чтобы вставить строки, если они отсутствуют, без удаления существующих?

tie my @lines, 'Tie::File', $fn or die "could not tie file: $!";          

for (my $i = 0;  $i < @lines; $i++) {

   if ($ln_title == 0) {                            

      if ($i < $#lines and $lines[$i] =~ /(\s+TRACK \d\d .*)$/) {        

         $lines[$i+1] = '    TITLE ""';
      }
   }
}                      

untie @lines;

1 Ответ

4 голосов
/ 14 июня 2010

Ваши требования кажутся немного расплывчатыми, поэтому мне сложно сказать, что вы хотите.

Если вы хотите вставить строку TITLE "" сразу после строки TRACK без замены (перезаписи)после строки TRACK вместо $lines[$i+1] = … можно использовать следующее:

splice @lines, $i+1, 0, '    TITLE ""';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...