J'ai un problème avec ma boucle while

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
use strict;
use warnings;
 
my $val = 0;
 
while($val < 65 ){
    $val += 3;
 
    if($val > 65){
        $val -= 3;
        last;
    }
 
}
 
# 63 => 66
A chaque passage, j'ajoute 3 jusqu'à ce que j'obtienne le nombre le plus proche mais INFÉRIEUR à 65. Donc, quand j'arrive à 63 si l'ajout suivant fait dépasser le seuil de 65, je ne dois pas effectuer l'opération. Par contre, si l'ajout avait été de 2, j'aurais dû le faire.

Le problème réel est plus compliqué et le j'appelle un sous-programme qui me renvoie une valeur croissante au cours du temps. Je ne peux donc pas faire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
use strict;
use warnings;
 
my $val = 0;
 
while(($val += 3) < 65 ){
 
}
Merci pour votre aide,