The man page for llength is http://purl.org/tcl/home/man/tcl8.4/TclCmd/llength.htm
This command returns the number of elements in the list. If the string is not a well-formed list, an error will be thrown.
caspian: Make sure to give llength the list, not just the name variable where the list is stored. For example:
# This is the right way to do it. set mylist {a b c} llength $mylist # This is the WRONG way to do it. # This won't return an error, but it will always return "1", # no matter how long or short your list is. set mylist {a b c} llength mylist
This is one of those places where Tcl's treatment of bareword literals can be frustrating to someone.
In the second case above, Tcl considers the argument to llength a list. Therefore, it is going to return the length of the list, which is equivalent to this list:
llength [list "mylist"]
DKF: The phrase "bareword literals" indicates a deviation from the Tcl Way; the concept does not really operate usefully in Tcl, unlike in a number of other languages (*cough*Perl*cough*). The llength command always works with list values, and lists are always values. If you've a list in a variable, you need to get the list out of the variable to work out its length.
See also list, lappend, lindex, linsert, lrange, lreplace, lsearch, lsort .
Tcl syntax help - Arts and crafts of Tcl-Tk programming - Category Command