ATOL |
Alpha à long |
|---|---|
Perl |
POSIX |
Syntaxe
| sub POSIX::atol($expression); |
Paramètres
| Nom | Description |
|---|---|
| $expression | Ce paramètre permet d'indiquer la chaîne de caractères à convertir |
Description
Cette fonction convertie une chaîne de caractères en une valeur entière longue.
Remarques
- Convertit une chaîne de caractères en entier long : La fonction POSIX::atol($expression) permet de convertir une chaîne contenant des chiffres en une valeur entière longue, c'est-à-dire un entier potentiellement plus grand que ceux manipulés par atoi. Elle est calquée sur la fonction atol() du langage C.
- Comportement identique à atoi mais avec un type cible plus large : En pratique, atol fonctionne comme atoi, mais retourne un long au lieu d'un int. Sur certains systèmes, cela ne fait aucune différence, mais sur d'autres, cela permet de gérer des entiers de taille plus importante (exemple 64 bits au lieu de 32).
- Ignore les caractères non numériques après le nombre : Comme atoi et atof, atol ne génère pas d'erreur si des caractères suivent les chiffres. Ainsi, "123abc" est interprété comme 123, tandis que "abc123" retourne 0. Cela impose une validation préalable si une conversion stricte est attendue.
- Retourne 0 en cas d'entrée invalide : Si la chaîne ne commence pas par une séquence numérique valide (exemple "foo"), la fonction renvoie 0 silencieusement. Cela peut induire en erreur si le zéro est une valeur possible et attendue, car il devient difficile de savoir s'il vient d'une erreur ou non.
- Basée sur la fonction atol() en C : Cette fonction est une interface directe vers l'appel C atol(), ce qui en fait un outil utile dans les cas d'interopérabilité avec des bibliothèques ou systèmes C. Elle garantit un comportement identique à celui des programmes C POSIX traditionnels.
- Utile pour les conversions contrôlées dans des environnements contraints : Même si Perl effectue automatiquement des conversions chaîne ↔ nombre, atol peut être utile dans les environnements à forte contrainte de portabilité ou dans des scripts visant une compatibilité POSIX stricte.
- Peut être affectée par les limites système : Le type "long" dépend de l'architecture du système : 32 bits sur certains, 64 bits sur d'autres. Cela signifie que atol peut retourner des valeurs différentes ou se comporter différemment selon la plateforme, surtout en cas de dépassement de capacité.
- Peu utilisée dans les scripts Perl modernes : Dans la majorité des scripts Perl modernes, il est préférable de s'appuyer sur les conversions automatiques de Perl ou d'utiliser des expressions régulières pour valider et extraire les entiers. POSIX::atol reste principalement d'intérêt dans des cas de portage ou d'intégration C/POSIX.
Voir également
Langage de programmation - Fonction C pour Linux - atol
Dernière mise à jour : Dimanche, le 18 octobre 2015