Je verrais bien ça en passant par une expression régulière :
Code :
- $toto = "blabla";
- if ($toto =~ /^\d+\.*\d*$/)
- {
- print "\$toto contient une valeur de type int ou float";
- }
- else
- {
- print "\$toto contient vraisemblablement une chaîne de caractères";
- }
|
Pour expliquer rapidement la RegExp (en espérant ne pas être dans le faux)
/^\d+\.*\d*$/
- qui commence par un ou plusieurs nombres (compris entre 0 et 9)
- suivi d'un point (éventuellement)
- suivi d'un nombre (éventuellement)
ainsi, si $toto == 12, alors la RegExp est vraie, valable aussi si $toto == 0.12
On peut affiner la RegExp davantage mais dans l'idée, on n'est pas loin normalement...
Sinon, autre astuce si tu cherches juste à différencier les int des autres types de variables, tu as ça :
Code :
- $toto = "titi";
- if ( int($toto) == $toto) { print "c'est un entier"; }
|
J'utilise la fonction int( ) de Perl qui me convertit en entier une var fournie en paramètre. Si la conversion donne exactement la même chose...
Voilà m'siou !
---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL