Bonjour à tous. Je débute dans Perl alors ayez pitié
Le problème est le suivant.
Je dispose d'une liste (très longue) sous forme de fichier .txt se présentant sous la forme.
Name : ......
Cost : .......
Rules : ....(ici plusieurs lignes peuvent apparaitre avec des retours a la ligne)
Set : .....
puis deux retours à la ligne marquent la fin de chaque paragraphe.
L'idée est de ramener chaque paragraphe à une seule ligne pour en faire un gros fichier csv. Mais mon problème est de conserver pour le champ "Rules" une information d'ou se trouvent les éventuels \n pour pouvoir par la suite remettre en page correctement mes données. Je pensais donc les remplacer par une balise quelconque de ma création.
En parcourant X forums je suis arrivé à tenter de manipuler mes paragraphes en faisant unen début de programme histoire de prendre tout le bloc d'un coup et faire mes petites opérations ensuite. Ce changement me semblait prometteur et je me voyais déjà grandement simplifier le code déjà produit.$/ = '\n\n';
Mais voila, je suis très vite arrivé à ma limite et depuis j'ai des soucis lorsque je fais une boucle. par exple.
Seul le premier \n trouvé est remplacé par mon CLRF, et tous les autres restent présents. Et là je sèche et ne comprends pas bien pourquoi les autres ne sont pas remplacés.foreach (<>){
s/\n/CLRF/;
print $_;
}
Evidemment je n'avais pas ce type de problèmes avant de tenter le: $/ ='\n\n'; malheureusement mon "Learning Perl" ne fait pas mention de $/ si bien que j'ai du mal à percevoir les mystères de cette variable. Je crois même que si mon livre n'aborde pas le sujet c'est que ça ne s'adresse pas à ceux (comme moi) qui n'en sont qu'à l'étape "Learning" .
Donc je serais reconnaissant si quelqu'un pouvait m'éclairer ou me donner qqs conseils. Merci d'avance ...
Partager