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

  1.  
  2. proc withArray {_array script {ns ""}} {
  3. upvar 1 $_array a
  4. set prelude [lmap name [array names a] {
  5. list upvar 1 a($name) $name
  6. }]
  7. set prelude [join $prelude \n]
  8. set script $prelude\n$script
  9. if {$ns eq ""} {set ns [list $ns]}
  10. apply [list {} $script {*}$ns]
  11. }
  12.  
  13.