http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/control/control.html
do is available in the tcllib control structure module.
Example:
control::do { lappend lines [gets stdin] } while {![eof stdin]}