I had a file intended to be sourced as well as evalled - that is, it was an executable file but could also be sourced into a running tcl program. Problem: "source" does not take args. So it was impossible to use the same argument parsing system for both modes. Or is it? proc srcfile { filename args } { global argv set argv $args source $filename } This proc will, of course, mung your argument vector, so make sure you have parsed it before "srcfile" is used. [NEM]: Or you could save and restore it: proc srcfile-safe {filename args} { global argv set save $argv set argv $args set rc [catch {source $filename} ret] set argv $save return -code $rc $ret } ''[MGS]'' [[2010-05-14]]: Note: the above code should really use uplevel to source the file into the calling namespace, and also set the argc variable for completeness. ---- See also: * [source with args] ---- !!!!!! %| [Category Example] |% !!!!!!