1 votes

Comment puis-je insérer des lignes de manière conditionnelle lorsque j'utilise Tie::File ?

Comment puis-je modifier ce code pour insérer des lignes si elles sont manquantes sans supprimer les lignes existantes ?

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;

4voto

Chris Johnsen Points 50064

Vos exigences semblent un peu vagues, il m'est donc difficile de dire ce que vous voulez.

Si vous voulez insérer un TITLE "" immédiatement après une TRACK sans remplacer (écraser) la ligne qui se trouvait à l'origine après l'élément TRACK vous pouvez alors utiliser la ligne suivante à la place de $lines[$i+1] = … :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X