Table des matières
Exposé
La solution constiste à changer la valeur de la variable séparateur de lignes en entrée qui se nomme $/
Ainsi lorsque vous effectuerez une instruction de la forme :
Vous le lirez pas nécessairement une ligne mais plusieurs lignes suivant les règles suivantes :
- Avec $/="" la recherche va s'effectuer sur un paragraphe et non pas sur une ligne, puisque vous positionnez là le séparateur de ligne en mode paragraphe.
- Avec $/=undef la recherche s'effectue sur tout le fichier, c'est à dire prend toutes les lignes et tous les paragraphes d'un seul coup.
- Avec $/="\n" qui est la valeur par défaut une seule ligne sera prise à chaque lecture
- Avec $/=une chaine, c'est la chaine qui sera votre séparateur de lignes
Une fois que vous avez compris cela vous pouvez lire un fichier de la forme
Qui est sur deux lignes séparée par deux retour lignes, qui en font un paragraphe indépendant avec le positionnement de la variable $/ à ""
Ainsi sur cette chaine vous pouvez faire un
pout avoir $1 positionné à la valeur de la citation et $2 positonné à la valeur de l'auteur
Remarque : avec la valeur s derrière le symbole de recherce
//s vous indiquez que vous souhaitez pouvoir faire des expressions régulière en utilisant le caractère . comme fin de ligne
Avec la valeur m vous permettez à $ de rester caractère fin de ligne (idem pour début de ligne) et non pas de chaine de caractères.
Moyen mnémotechnique
$/ est le caractère de délimiteur d'entrée et $\celui de sortie.
Comment s'en rappeler ?
Si vous faites une signature de la forme
Vous donnez une impression de 3D / est de début (entrée) et \ la fin (sortie)
C'est mon moyen mnémotechnique