Pour ce qui est de l'expression son fonctionnement est rigoureusement identique à celui du C !!
Si ce qui précède le ? est vrai, on prend la valeur d'avant le :.
Si c'est faux, on prend ce qui suit le :.
Ta difficulté porte en fait sur le ($a%2) qui est le reste de la division entière de $a par 2.
Si $a est pair, son reste de division par 2 est 0, ce qui logiquement se traduit par faux.
Si $a est impair, son reste de division par 2 est 1, ce qui donne la valeur logique vraie (est vraie toute valeur différente de 0, de "" et de undef).
C'est là qu'est la difficulté
Sinon, il n'y a pas que le calcul pour savoir si un nombre est pair
Il y a aussi
P.S. pour ton retour chariot, tu peux utiliser, au choix :
print "Le nombre est ".(($a%2)?"impair":"pair")."\n";
ou
printf ("Le nombre est %s\n", ($a%2)?"impair":"pair");
Partager