#!/usr/bin/perl -w
#On affecte à la variable $texte la chaine de caractères "Il y a 2 mois, ce n'est pas toi qui a decouvert cette vieille armoire, cachee sous la toiture.\n Moi, je te dis que c'est bien moi, il y a 2 ou 3 mois "
$texte="Il y a 2 mois, ce n'est pas toi qui a decouvert cette vieille armoire, cachee sous la toiture.\n
Moi, je te dis que c'est bien moi, il y a 2 ou 3 mois ";
#On affiche "Motif a chercher : "
print "Motif a chercher : ";
#On affecte à la variable $motif le contenu de l'entrée standard <STDIN> (Pointeur qui permet de lire le flux d'entrée au clavier)
$motif=<STDIN>;
#On supprime le dernier caractère contenu dans la variable $motif seulement si celui-ci est un retour à la ligne
chomp($motif);
#Si le contenu de la variable $motif est égal à rien, on exécute le bloc d'instructions
if ($motif eq "") {
	#On affiche "Vous n'avez pas donne de motif a chercher."
	#On retourne à la ligne
	print "Vous n'avez pas donne de motif a chercher.\n";
}
#Sinon si la condition n'est pas remplie, on exécute le bloc d'instructions
else {
	#On retourne à la ligne
	#On affiche "Recherche du motif ", suivi en rouge du contenu de la variable $motif et suivi de " :"
	#On retourne à la ligne
	print "\nRecherche du motif \033[31m$motif\033[00m :\n";
	#Si le contenu de la variable $texte contient au début de la chaîne de caractères le mot contenu dans la variable $motif ou si le contenu de la variable $texte contient un point ou un retour à la ligne suivi du mot contenu dans la variable $motif, on exécute le bloc d'instructions
	if (($texte=~/^$motif\b/i) || ($texte=~/[.\n]$motif\b/i)) {
		#On affecte à la variable $txt le motif recherché (Contenu dans la variable $&) qu'on colore en rouge
		$txt="\033[31m".$&."\033[00m";
		#On affecte à la variable $gauche la chaîne de caractères qui se trouve à gauche du motif recherché (Contenu dans la variable $`)
		$gauche=$`;
		#On affecte à la variable $droite la chaîne de caractères qui se trouve à droite du motif recherché (Contenu dans la variable $')
		$droite=$';
		#On affiche le contenu de la variable $gauche, suivi du contenu de la variable $txt et suivi du contenu de la variable $droite
		print $gauche.$txt.$droite;
	}
	#Sinon si la condition n'est pas remplie, on exécute le bloc d'instructions
	else {
		#On affiche le contenu de la variable $texte
		print $texte;
	}
	#On retourne à la ligne
	print "\n";
}