Je voudrais comparer deux chaines de caracteres en tant que nombre mais lorque j'utilise le "<=>" il me dit que ce n'est pas numérique (normal vu que c'est une chaine). Mais lorsque j'utilise la comparaison avec "cmp", il ne compare pas correctement.
Explicitons :
Ca c'est mon code:
Code :
- my $i;
- my @tab=("1.2.1","1.2.3","1.2.10","1.2.2","1.2.21" );
- my @tri = sort fct @tab;
- sub fct {$a cmp $b;}
- for ($i=0;$i<5;$i++) {
- print $tri[$i]."\n";
- }
|
A l'affichage on, obtient:
Code :
- 1.2.1
- 1.2.10
- 1.2.2
- 1.2.21
- 1.2.3
|
Alors que j'aimerais obtenir:
Code :
- 1.2.1
- 1.2.2
- 1.2.3
- 1.2.10
- 1.2.21
|
Avez vous une astuce ?
Merci d'avance !