http://tcllib.sf.net/doc/control.html
do is available in the tcllib control structure module.
Example:
control::do { lappend lines [gets stdin] } while {![eof stdin]}