1#!/bin/sh 2# -*- tcl -*- \ 3exec tclsh "$0" ${1+"$@"} 4 5# Array server ... 6 7package require comm 8package require tie 9 10puts "Listening on [comm::comm self]" 11 12proc Track {args} { 13 global server 14 puts *\ \[[join $args "\] \["]\]\ ([dictsort [array get server]]) 15 return 16} 17 18proc dictsort {dict} { 19 array set a $dict 20 set out [list] 21 foreach key [lsort [array names a]] { 22 lappend out $key $a($key) 23 } 24 return $out 25} 26 27array set server {} 28trace add variable server {write unset} Track 29 30vwait forever 31