lassign — Assign list elements to variables
lassign list ?varName ...?
This command treats the value list as a list and assigns
successive elements from that list to the variables given by the
varName arguments in order. If there are more variable names
than list elements, the remaining variables are set to the empty
string. If there are more list elements than variables, a list of
unassigned elements is returned.
An illustration of how multiple assignment works, and what happens
when there are either too few or too many elements.
lassign {a b c} x y z ;# Empty return
puts $x ;# Prints "a"
puts $y ;# Prints "b"
puts $z ;# Prints "c"
lassign {d e} x y z ;# Empty return
puts $x ;# Prints "d"
puts $y ;# Prints "e"
puts $z ;# Prints ""
lassign {f g h i} x y ;# Returns "h i"
puts $x ;# Prints "f"
puts $y ;# Prints "g"
The lassign command has other uses. It can be used to
create the analogue of the “shift” command in many shell languages
like this:
set ::argv [lassign $::argv argumentToReadOff]
list, lappend, ledit, lindex, linsert, llength, lmap, lpop, lrange, lremove, lrepeat, lreplace, lreverse, lsearch, lseq, lset, lsort
assign, element, list, multiple, set, variable
Copyright © 1992-1999 Karl Lehenbauer & Mark
Diekhans
Copyright © 2004 Donal K. Fellows