case Commandes Internes Tcl
NOM
case - Evalue un parmi plusieurs scripts, dépendant d'une valeur donnée
SYNTAXE
case string ?in? patList body ?patList body ...?
case string ?in? {patList body ?patList body ...?}
DESCRIPTION
Note: la commande case est obsolète et est supportée uniquement pour compatibilité ascendante. Elle sera supprimée un jour ou l'autre. Utilisez la plutot la commande switch .
La commande case compare string à chacun des arguments patList dans l'ordre. Chaque argument patList est une liste d'un ou plusieurs modèles. Si un de ces modèles correspond à string alors case évalue l'argument body suivant en le transmettant récursivement à l'interpréteur Tcl et renvoie le résultat de cette evaluation. Chaque argument patList est constitué d'un simple modèle ou d'une liste de modèles. Chaque modèle peut contenir un des jokers décrits dans string match. Si un argument patList est default, le body correspondant sera évalué si aucun patList ne correspond à string. Si aucun argument patList ne correspond à string et default n'est pas défini, alors la commande case renvoie une chaîne vide.
Deux syntaxes sont fournies pour les arguments patList et body. La première utilise un argument séparé pour chacun des modèles et commandes; cette forme convient si les substitutions sont désirées dans un des modèles ou des commandes. La seconde forme regroupe tous les modèles et commandes dans un simple argument; l'argument doit avoir une structure de liste correcte, les éléments de la liste etant les modèles et commandes. La seconde forme facilite la construction de commandes case multi-ligne, car les accolades englobant la liste rendent inutile l'inclusion d'un antislash à la fin de chaque ligne. Comme les arguments patList sont entre accolades dans la seconde forme, aucune substitution de commande ou de variable ne leur sont appliquées; ceci rend le comportement de la seconde forme différent de la première dans quelque cas.
Dernière révision: 7.0