Posted to tcl by aspect at Tue Nov 08 23:05:51 GMT 2016view pretty
proc varswitch args { set switch [lindex $args end] set args [lrange $args 0 end-1] foreach {pattern body} $switch[set switch ""] { if {$body ne "-"} { set body [list string cat $body] } lappend switch $pattern $body } tailcall switch -glob {*}$args $switch } foreach v {foo bar v Baz} { puts $v:[varswitch -nocase $v {foo 1 ba* 2 v 3 * 4}] }