home *** CD-ROM | disk | FTP | other *** search
/ Practical Programming in Tcl & Tk (4th Edition) / TCLBOOK4.BIN / mac / exsource.old / 10_4.tcl < prev    next >
Text File  |  2003-04-15  |  590b  |  24 lines

  1. #
  2. # Example 10-4
  3. # lassign: list assignment with foreach.
  4. #
  5.  
  6. # Assign a set of variables from a list of values.
  7. # If there are more values than variables, they are returned.
  8. # If there are fewer values than variables, 
  9. # the variables get the empty string.
  10.  
  11. proc lassign {valueList args} {
  12.     if {[llength $args] == 0} {
  13.         error "wrong # args: lassign list varname ?varname..?"
  14.     }
  15.     if {[llength $valueList] == 0} {
  16.         # Ensure one trip through the foreach loop
  17.         set valueList [list {}]
  18.     }
  19.     uplevel 1 [list foreach $args $valueList {break}]
  20.     return [lrange $valueList [llength $args] end]
  21. }
  22.  
  23.  
  24.