As from 8.5, [lassign] is in the Tcl core - see [Changes in Tcl/Tk 8.5]. [TclX] has supplied lassign since the early [[or mid-?]] '90s. [http://www.tcl.tk/man/tcl/TclCmd/lassign.htm%|%official reference]: Example usage: lassign {value1 value2} variable1 variable2 in place of set variable1 value1 set variable2 value2 [TIP] [http://purl.org/tcl/tip/57.html%|%57]: proposed making the [TclX] `lassign` command a built-in Tcl command ** Description ** ---- Actually, note that lassign takes a list and assigns each element to a variable. Thus, while the above is true, the list of values can have dozens of elements. ---- [DKF] cleverly points out that lassign makes a Perlish [[shift]] this easy: proc shift {} { global argv set argv [lassign $argv v] return $v } On the other hand, [Hemang Lavana] observes that TclXers already have "[lvarpop] ::argv", an exact synonym for "shift".