#!/usr/bin/perl print "Donnez une phrase qui contient une somme exprimee en francs (Sous la forme XXX F/f ou XX.XX F/f) à convertir en euros : \n"; $phrase=<STDIN>; #On supprime le dernier caractère contenu dans la variable $phrase seulement si celui-ci est un retour à la ligne chomp ($phrase); #Si le contenu de la variable $phrase contient n'importe quel chiffre de 0 à 9 répété 1 à plusieurs fois, suivi ou non d'un point, suivi de n'importe quel chiffre de 0 à 9 répété 0, 1 ou plusieurs fois, suivi d'un espace et suivi d'un F ou d'un f, on exécute le bloc d'instructions if ($phrase=~/([0-9]+\.?[0-9]*)( (F|f))/) { #On affecte à la variable $p le motif recherché qui se trouve dans la première paranthèse $p=$1; #On affecte à la variable $gauche la chaîne de caractères qui se trouve à gauche du motif cherché $gauche=$`; #On affecte à la variable $droite la chaîne de caractères qui se trouve à droite du motif cherché $droite=$'; #On affecte à la variable $symbole le motif qui se trouve dans la deuxième paranthèse $symbole=$2; #Dans le contenu de la variable $symbole on remplace le F par un E $symbole=~s/F/E/; #Dans le contenu de la variable $symbole on remplace le f par un e $symbole=~s/f/e/; #On divise le contenu de la variable $p par 6.56 et on affecte le résultat à la variable $conversion $conversion=$p/6.56; #Si le contenu de la variable $conversion contient n'importe quel chiffre de 0 à 9 répété 1 ou plusieurs fois, suivi d'un point et suivi de deux chiffres de 0 à 9, on exécute le bloc d'instructions if ($conversion=~/([0-9]+\.[0-9][0-9])/) { #On affecte à la variable $conv le motif recherché qui se trouve dans la première paranthèse (Contenu dans la variable $1) $conv=$1; } #Si le contenu de la variable $gauche est égal à rien et si le contenu de la variable $droite est égal à rien, on exécute le bloc d'instructions if ($gauche eq "" && $droite eq "") { print "Resultat en euros : ",$conv.$symbole,"\n"; } else { #On affiche les uns à la suite des autres le contenu de la variable $gauche, le contenu de la variable $conv, le contenu de la variable $symbole et le contenu de la variable $droite print $gauche.$conv.$symbole.$droite,"\n"; } } else { print "/!/ aucune somme en francs dans cette phrase /!/ \n"; }