2010-06-14 70 views
1

如何更改此代碼插入行如果丟失而不刪除現有的?如何在使用Tie :: File時有條件地插入行?

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; 

回答

4

您的要求看起來有點模糊,所以我很難告訴你想要什麼。

如果你想一個TRACK線後立即插入TITLE ""線,而無需更換(重寫),其爲TRACK線後最初的線,那麼你可以使用下面在$lines[$i+1] = …的地方:

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

是。這正是我所期待的。 非常感謝。 – thebourneid 2010-06-14 04:18:25