Bonjour,
Avec le script suivant, je souhaite multiplier 2 opérandes et afficher le résultat

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
#! /usr/bin/perl 
system clear;
 
while (1)
{
print "saisir 1er operande : ";
$saisi1=<STDIN> or die;
if ($saisi1=="fin")
{last}
print "saisir 2ieme opreande : ";
$saisi2=<STDIN> or die;
print  $saisi1, 'x' , $saisi2 , '=' ,  $saisi1*$saisi2;
print "\n";
$dur1=5;
$dur2=4;
print  $dur1, 'x' , $dur2 , '=' ,  $dur1*$dur2;
print "\n";
}
print "fin du programme multi.pl \n";
en saisissant respectivement 2 et 3 pour 1er operande et 2ieme operande
et fin pour sortir on obtient :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
2
x3
=6
5x4=20
fin du programme multi.pl
je souhaite obtenir le résultat sur une ligne soit :
2x3=6
apparemment, perl semble faire une différence entre le contenu
des variables entrées via <STDIN> et celles entrées en dur.
J’ai essayé sans succès de régler le problème avec la fonction chomp()
Espérant faire sauter le retour chariot. $saisi1=chomp($saisie1).
Mais cela donne le retour de la fonction en l’occurrence 1 , l’affichage
Se fait alors sur une ligne , mais donne :
1x1=1 (ce qui n’est pas faux ! mais pas ce que j’attends).

Merci pour votre aide.