2010-09-09 3 views

Répondre

8

Vous devrez lancer votre propre analyseur de flux de données. $/isn't up to the task:

Souvenez-vous: la valeur de/$ est une chaîne, pas une expression régulière. awk doit être meilleur pour quelque chose. :-)


Mais une ligne qui se termine par trois tirets et une nouvelle ligne est aussi une ligne qui se termine par deux tirets et un saut de ligne. Ne suffirait-il pas d'échanger la commande chomp?

{ 
    local $/ = "--\n"; 
    while (<>) { 
     chomp; s/\-+$//; # chop off minimum record separator AND extra dashes 
     print; 
    } 
} 

ou

 chomp && s/\-+$// 

pour le cas où le dernier enregistrement des données ne se termine pas avec la chaîne de séparateur d'enregistrement.

+0

Pas besoin de rouler soi-même, nous avons déjà ['Data :: Record'] (http://p3rl.org/Data::Record). – daxim