Ce que je peux te conseiller, c'est de préfixer le nom de tes variables par 'lst' ou 'str', selon le type de données que tu mets.
Exemple:
Ensuite tu sais que tu ne peux utiliser les fonctions lindex, lrange, etc que sur des variables de type liste.
Ca évitera le genre d'erreurs que tu as eus la.
Exemple:
tcl
set strArg "ceci est un texte !"
set lstArg [split $arg]
set strMot_1 [lindex $lstArg 0]
Ensuite tu sais que tu ne peux utiliser les fonctions lindex, lrange, etc que sur des variables de type liste.
Ca évitera le genre d'erreurs que tu as eus la.