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