http://www.purl.org/tcl/home/man/tcl8.4/TclCmd/tell.htm
tell and flush
If you are using tell and you do reads and writes in between your calls to tell, you usually will have to do a flush or your tell will fail with a -1 return value.
This is because the Tcl Channel code cannot ensure an accurate 'tell' value until you flush out pending i/o on your open channel. -mikeH
Tcl syntax help - Arts and crafts of Tcl-Tk programming - Category Command