使用Tie :: File时如何有条件地插入行?

时间:2010-06-14 03:06:11

标签: perl

如何在不删除现有代码的情况下更改此代码以插入行?

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 个答案:

答案 0 :(得分:4)

你的要求似乎有点模糊,所以我很难说出你想要的东西。

如果您希望在TITLE ""行之后立即插入TRACK行而不替换(覆盖)最初在TRACK行之后的行,则可以在以下内容中使用以下内容: $lines[$i+1] = …的地方:

splice @lines, $i+1, 0, '    TITLE ""';