Posted to tcl by aspect at Thu Jul 31 02:45:11 GMT 2014view pretty

    proc withArray {_array script {ns ""}} {
        upvar 1 $_array a
        set prelude [lmap name [array names a] {
            list upvar 1 a($name) $name
        }]
        set prelude [join $prelude \n]
        set script $prelude\n$script
        if {$ns eq ""} {set ns [list $ns]}
        apply [list {} $script {*}$ns]
    }